Waldur Documentation
| Description | Documentation of an open-source marketplace platform Waldur. See the latest version at https://docs.waldur.com |
| Copyright | Copyright © 2016 - 2025 Waldur team |
Table of Contents
About ↵
Getting started
Installing Waldur is a simple and straightforward process.
Pick method of installation
There are 2 supported methods:
- Using Docker Compose. Fastest but runs on a single server.
- Using Helm. For deploying on Kubernetes clusters.
Configure Waldur
Tune Waldur configuration to match your deployment. Majority of the configuration is done on Mastermind side. Exact method of configuration depends on the chosen method of installation. Settings are grouped by modules, you can see all available ones in the configuration guide.
The most typical aspects for configuration are:
- Configuring identity providers. Waldur supports a range of OIDC and SAML based IdPs.
- Adding offerings for sharing among Waldur users.
Tip
For easier management of Waldur deployments and configuration we provide Ansible playbooks.
Profit
You are done! If you are happy and want to support the project, make sure you check the support page.
Danger
Before going to production, make sure you have completed the go-live checklist.
Contributing
Waldur is an open project welcoming contributions. To assure the smooth acceptance of contributions please review the contribution guidelines below.
Pull requests
We welcome contributions (patches, new features, translations, etc) through pull requests. Please make sure that the following is addressed when making a pull request:
- a request has a clear scope - new feature, bugfix, refactoring. Granular pull requests make integration much faster;
- the code is following code conventions of the corresponding platform and linters / tests are passing;
Localisation
If you see a term, which needs to be translated better, please submit a fix via Localazy.
License
All contributions to Waldur can be accepted only you agree to license your contribution under the MIT license. Please make sure that you have the right to sign off code as MIT.
Code repositories
| Repository | Description |
|---|---|
| HomePort | Code of Waldur Homeport web interface |
| MasterMind | Code of Waldur Mastermind orchestrator |
| Helm package | Helm packaging of Waldur for Kubernetes |
| Docker-compose | Docker-compose packaging of Waldur |
| Ansible module | Ansible module for Waldur APIs |
Data processing disclaimer
Waldur developers would like to inform that we do not assume any responsibility for processing data generated or handled by the software.
Users (e.g platform operators, platform users) are solely responsible for ensuring that the data processed through our software complies with applicable laws, regulations, and industry standards. Waldur developers disclaim any liability for loss, damage, or unauthorized access to data from our software.
Our role is limited to the development of software solution. We do not control, manage, or take responsibility for our software processes' specific deployments and data, including but not limited to data storage, transmission, or any associated security measures.
Users are encouraged to implement data protection and security measures to secure their information. By using Waldur software, users acknowledge and agree that Waldur developers are not liable for any issues related to data processing.
Some highlights to keep in mind regarding user data processing in Waldur
- Platform operator should have a DPA (Data Processing Agreement) with every Service Provider connected to the platform because, in case of a service request from a Service Provider, the latter gets the ability to see members of the project whereas service is to be provisioned. For example, an HPC service gets access to project member information only when the project is requesting access to the service. The access is revoked once the service is terminated.
- Staff users (usually platform operators) can see all users personal information.
- User profile modifications are logged, including modifier network address and changes for auditing and tracing abilities. Additionally, operations connected with the user, e.g. adding or removing SSH key, are also logged.
- The authentication system is designed around the federated AAI solution, where a user is expected to conform explicitly to personal data propagation from the Identity Provider (IdP) to Waldur.
- In cases when policy allows, it is possible to create a non-personalized group or robot account to act on behalf of the user, e.g. for CICD types of workflows.
- All event logs contain references to a user - by UUID - if they are connected with the user. This allows the platform operator to have an easy information cleanup for user data according to specific deployment policies (e.g. removing data of deactivated users after two years) and to disclose user data easily collected about them.
Some suggestions to ensure that the data is securely protected
- Waldur is pretty configurable, this means that the Waldur deployment operator can configure user profiles in a way that the information requested about the users is as minimal as possible.
- User information is visible to all project members, so make sure that you include only these users in the project, who are allowed to see each other's information. In addition to that, organization managers can see the user information about users connected to that organization.
Governance
Waldur is a project co-developed by OpenNode and University of Tartu with contributions from different organizations. To make sure that the project is delivering a sound product, OpenNode maintains control over the authoritative source code and covers Product owner and Architect roles (see below).
Waldur and all of its components are released under MIT license to be as friendly towards ecosystem as possible.
Overview of the development process
Waldur team tries to maintain a transparent process of development. In a team, each person can have one or more of the roles below.
Roles
- Project manager - collects and provides requirements for a particular Waldur-based project. Multiple people can have this role.
- Product owner - analysis requirements from project managers and fits into a product roadmap. Maintains technical feature list. Single person at a time can have this role.
- Architect - oversees Waldur platform development, including backend, frontend, external tools. Has a final word on the way how components are integrated. Single person at a time can have this role.
- Developer - responsible for fulfilling tasks created. Multiple people can have this role.
Workflow
- Project manager communicates with customers, defines requirements for product owner.
- Product owner analyses requirements from all projects and creates epics for technical features implementation. Epics are assigned to the architect.
- Architect defines general development plan for features from product owner, adds description to the epic and creates separate tasks or stories for component owners.
- Developers process tasks.
- Product owner releases tagged versions of the product once a certain amount of functionality or bugfixes went in.
Marketplace concept
Overview
The Waldur Marketplace serves as a centralized platform for requesting, provisioning, and managing resources from various service providers. This guide explains key concepts and workflows in the Marketplace to help you effectively navigate and utilize its features.
Core concepts
Marketplace framework
The Marketplace operates through four integrated modules:
-
Structure module: Establishes organizational hierarchy through Organizations and Projects, with access controls enforced at the project level.
-
Service catalogue module: Enables Service providers to configure Offerings with pricing models (Plans), resource components, and customized request forms.
-
Provisioning module: Manages the complete resource lifecycle from order placement to resource creation, usage tracking, and termination.
-
Billing module: Handles financial tracking, invoicing, and cost management for resources provisioned through the Marketplace.
Key components
- User: An individual who accesses the Waldur system with specific permissions within one or more organizations.
- Organization: A business entity that can act as a customer, a service provider, or both within the Waldur system.
- Project: A logical container for resources that belongs to an organization, with its own access control settings.
- Project member: A user who has been assigned specific permissions within a project.
- Service provider: An organization authorized to publish and deliver services through Waldur.
- Marketplace plugin: A software component that integrates a specific backend system (like OpenStack or SLURM) with the Waldur Marketplace.
- Order: A formal request for resource provisioning submitted by a user.
- Resource: The provisioned service instance that results from a fulfilled order.
- Offering: A specific service available for provisioning (e.g., virtual machines, HPC compute time).
- Plan: A pricing and resource allocation model for an offering.
- Plugin registry: A central repository that maintains information about available backend services and their connection details.
- Invoice: A financial document detailing resource usage costs for an organization.
- Invoice Item: An individual billing entry for a specific resource's consumption.
Architectural framework
flowchart TD
%% Structure module
subgraph Structure[Structure module]
Org[Organization]
User[User]
Proj[Project]
ProjMember[Project member]
ServiceProvider[Service provider]
end
%% Service catalogue module
subgraph Catalog[Service catalogue module]
Offering[Offering]
Plan[Plan]
PluginReg[Plugin registry]
end
%% Provisioning module
subgraph Provisioning[Provisioning module]
Order[Order]
Resource[Resource]
MarketplacePlugin[Marketplace plugin]
end
%% Billing module
subgraph Billing[Billing module]
Invoice[Invoice]
InvoiceItem[Invoice item]
end
%% Key Relationships
Org -- has --> Proj
Org -- becomes --> ServiceProvider
User -- belongs to --> Proj
User -- creates --> ProjMember
ServiceProvider -- provides --> Offering
Offering -- connects to --> PluginReg
Offering -- defines --> Plan
ProjMember -- submits --> Order
Order -- approved by --> ServiceProvider
Order -- creates --> Resource
MarketplacePlugin -- processes --> Resource
Resource -- generates --> InvoiceItem
InvoiceItem -- belongs to --> Invoice
Invoice -- billed to --> Org
Resource -- instantiated from --> Offering
Proj -- contains --> Resource
classDef structureModule fill:#5BAD60,stroke:#333,stroke-width:1px
classDef catalogModule fill:#5BAD60,stroke:#333,stroke-width:1px
classDef provisioningModule fill:#5BAD60,stroke:#333,stroke-width:1px
classDef billingModule fill:#5BAD60,stroke:#333,stroke-width:1px
class Org,User,Proj,ProjMember,ServiceProvider structureModule
class Offering,Plan,PluginReg catalogModule
class Order,Resource,MarketplacePlugin provisioningModule
class Invoice,InvoiceItem billingModule
Offering requirements
For an offering to appear in the Marketplace, it must include:
- Category assignment: Determines the offering's location in the Marketplace browsing hierarchy.
- Basic information: Name, description, plugin type, and service settings.
- Plan configuration: At least one plan defining resource limits and pricing structure.
- Component definitions: Specific resources being measured or billed.
- Visibility settings: Configuring which customers or projects can access the offering.
- Optional attributes: Custom parameters that users must provide when ordering.
Supported integration plugins
The Marketplace supports various backend systems through dedicated plugins. Here are examples of commonly used plugins:
- OpenStack plugin: Provisions virtual infrastructure including VMs, storage volumes, networks, and IP addresses.
- SLURM plugin: Facilitates access to HPC cluster resources with consumption typically measured in CPU or GPU hours.
These are just examples of the available integrations. Waldur's plugin architecture allows for connecting to a wide range of service backends. Each plugin has specific configuration requirements detailed in its dedicated documentation section.
Service providers can leverage these existing plugins or develop custom integrations to make their specific services available through the Marketplace.
Resource lifecycle
Resources in the Marketplace follow a defined lifecycle:
- Publication: Service Provider creates and publishes an offering with associated plans.
- Order placement: User selects an offering, chooses a plan, and submits an order within a project context.
- Approval process: Orders may require authorization by project or customer owners based on configured policies.
- Provisioning: Upon approval, the system automatically provisions the requested resource via the appropriate plugin.
- Usage monitoring: The system tracks resource consumption for accounting and reporting purposes.
- Management operations: Users can perform lifecycle operations (update, pause, terminate) as permitted by the plugin and their access rights.
Next steps
To learn more about specific offerings or how to perform common tasks in the Marketplace, refer to the following guides:
Usage examples
Here are some common scenarios to help you understand how to use the Marketplace effectively:
Requesting a Virtual Machine
- Navigate to the Marketplace
- Filter offerings by the "Virtual Machines" category
- Select the OpenStack offering from your preferred provider
- Choose the plan that matches your requirements (e.g., "Small VM" with 2 vCPUs, 4GB RAM)
- Fill in required parameters (name, SSH key, etc.)
- Submit your order
- Once approved, your VM will be provisioned and appear in your project's resources
Managing HPC allocation
- Access your project dashboard
- Select the SLURM allocation from your resources list
- View current usage statistics for CPU hours and storage
- If needed, request an extension through the "Modify Resource" option
- Submit jobs through the provided access methods
Cost optimization
Monitor your resource usage regularly through the dashboard to avoid unexpected charges. For VM resources, remember to shut down instances when not in use, as many providers charge based on uptime regardless of actual CPU utilization.
Approval workflows
Some offerings may require approval from your organization owner or the service provider before provisioning begins. You can check the status of your order in the Orders section of your project dashboard.
Academic publications
- 2024 - Federated Single Sign-On and Zero Trust Co-design for AI and HPC Digital Research Infrastructures, S. R. Alam et al., SC24-W: Workshops of the International Conference for High Performance Computing, Networking, Storage and Analysis, Atlanta, GA, USA, 2024, pp. 1756-1764, doi: 10.1109/SCW63240.2024.00220.
- 2024 - Isambard-AI: a leadership class supercomputer optimised specifically for Artificial Intelligence, Simon McIntosh-Smith, Sadaf R Alam and Christopher Woods, https://doi.org/10.48550/arXiv.2410.11199
- 2024 - Developing Prototype Digital Twins for biodiversity conservation and management: achievements, challenges and perspectives, Lecarpentier, Damien, et al. "Developing Prototype Digital Twins for biodiversity conservation and management: achievements, challenges and perspectives." Research Ideas and Outcomes 10 (2024): e133474.
- 2024 - Deploying open-source SIEM system for Waldur-based services at the University of Tartu, Mark Borissov, Master Thesis
- 2022 - Evaluating SSH for Modern Deployments, Thomas Thaulow Stöcklin, Bachelor Thesis
- 2022 - Testing Estonian Scientific Computing Infrastructure Self-Service in Cypress Framework, Janeli Õun, Master Thesis
- 2021 - A Modern CI/CD Pipeline for Cloud Native Applications, Sergei Zaiaev, Master Thesis
- 2018 - Automated provisioning of data analytics platforms in the Estonian Scientific Computing Infrastructure, Stanislav Nazmutdinov, Master Thesis
Reporting issues
No software is perfect, and issues are to be expected. If you observe something that you think needs fixing, please provide a detailed issue report using the guidelines below.
Where to report issues
Choose the appropriate channel to report your issue:
- Internal issue management (Atlassian JIRA)
- If you have access to the internal issue management system, please report the issue through Atlassian JIRA
- Use the appropriate project for the component experiencing the issue
-
Follow your organization's internal guidelines for issue categorization
-
GitHub Issues
- If you don't have access to internal issue management, report issues on GitHub
- Visit the appropriate repository under the Waldur organization
- Select the repository that corresponds to the component with the issue (e.g., HomePort, MasterMind)
- Create a new issue using the provided templates when available
Not sure which component has the issue?
If you're uncertain whether the issue is with HomePort or MasterMind, please provide:
-
Description of the problem
- What you were trying to do
- What happened instead
- Any error messages you saw
-
Screenshots of the error at high resolution
- Include the entire screen if possible to provide context
- Ensure text is legible
-
Basic environment information
- Browser type and version (if applicable)
- URL where the issue occurred
- Time and date when you encountered the issue
- Waldur version (if known)
This information will help us determine which component is affected and guide you on additional details we might need.
Required information for all issues
The following information is helpful for troubleshooting any issue:
-
Environment details
- Waldur instance hostname
- Deployment type (select one):
- Docker-compose
- Helm
- ArgoCD
-
Affected URL(s)
- Include the exact page where the issue occurs
-
User-specific details (if applicable)
- User roles in different scopes (project, organization, call, offering, etc.)
- Whether user has global role (staff or support)
- If reproducible in test environment, provide the specific username
-
Details of affected Waldur objects
- Customer name
- Project name
- Resource name
- Any other relevant identifiers
Homeport-specific issues
When reporting issues specifically with HomePort, please also include:
- HAR request file that has failed or contains data required for rendering
Mastermind-specific issues
When reporting issues specifically with MasterMind, please also include:
- Logs
- Include the latest MasterMind stdout logs with the error stacktrace
- For different deployment types, retrieve logs using:
- Docker-compose: View logging instructions
- Helm: View debugging instructions
Warning
Logs may contain sensitive data. Please ensure you either clean up the data or share it only with trusted parties before submitting.
Best practices for issue reports
- Be specific about the steps to reproduce the issue
- Mention which browser and version you're using (for frontend issues)
- Include timing information (when did it start occurring, is it intermittent, etc.)
- Note any recent changes that might be related to the issue
- Provide as much context as possible to help with troubleshooting
- If possible, indicate if the issue can be consistently reproduced or occurs randomly
Screenshots
Desktop view
Login page
Organization dashboard
Project dashboard
Provider reporting and support dashboard
Call management dashboard
Marketplace
Admin dashboard
Mobile view
Login page
Organization dashboard
Project dashboard
Provider reporting and support dashboard
Marketplace
Admin dashboard
Support
Waldur is an open-source project co-developed by OpenNode and University of Tartu.
Support and sponsored development
OpenNode provides several options for support with varying SLAs.
If you would like to know more, reach out!
Managed hosting for academical institutions
Please reach out to support@hpc.ut.ee if you represent an R&D organization and interested in managed Waldur hosting.
Terminology ↵
Glossary
| Name | Description | Examples |
|---|---|---|
| Organization | Legal representation of the entity that can be a client of the Operator. | Ministry A, Department B |
| Project | Functionality in Self-Service Portal, which allows to group internal resources into projects, which allows to limit access to resources for people. | Internal systems, Public web |
| Service Provider | Organization can publish offerings in marketplace as soon as it is registered as service provider. | ETAIS, UT HPCC |
| Offering | Service Offering from Service Provider, which can be requested via a Marketplace. Correspond to an entry in the Service Catalogue. | VPS with LB, VDC in DataCenter 1 |
| Category | A grouping of the Offerings defining metadata common to all offerings in this Category. | Compute, Storage, Operations |
| Section | Section is a named aggregate of offering attributes. | System information, Support, Security |
| Attribute | Attribute is an atomic piece of offering metadata, it has name, type and list of options. | Peak TFlop/s, Memory per node (GB) |
| Plan | An option for paying for a particular Offering. There can be multiple options but at each point in time only one Plan can be active. | Small private cloud, Big private cloud |
| Order | A collection of Order items. Considered as done when all Order Items have been processed. | 3 different Offerings with configuration. |
| Order Item | Connects Offering with concrete Organization and configuration settings. | Small VPC with name “test” |
| Resource | Created as part of fulfilling the Order Item. Represents part of the Offering that customer Organization can use. | VM, VPC |
| Category component | Specifies unit of measurement, display name and internal name of the component, which should be present in every category offerings. It is used for aggregating offering component usage and rendering dashboard charts in both project and organization workspace. | vCPU, RAM, storage |
| Offering component | Usage-based component that constitute offering. It may refer to the category component via parent field in order to ensure that component usage is aggregated. | Database count, disk usage |
| Plan Component | Components that constitute a plan. | vCPU, RAM, storage, network bandwidth |
| Component usage | Collects reported resource usage for each plan component separately. | 5 virtual floating IPs for the last month. |
Roles and permissions
Users, Organizations and Projects
Waldur is a service for sharing resources across projects. It is based on the delegation model where an organization can allocate certain users to perform technical or non-technical actions in the projects.
The most common types of Waldur installations include:
- Cloud - used in commercial or government sectors for providing access to cloud resources like virtual machines, storage and Kubernetes clusters.
- Academic - used in research and education. Waldur is deployed for a single university, high school or research infrastructure.
- Academic Shared - the same purpose as Academic, but is shared among several universities or infrastructures.
User
An account in Waldur belonging to a person or a robot. A user can have roles in Organizations and Projects. Some users - mostly affiliated with Waldur operator - can have global roles, e.g. support or staff.
Organization
A company or a department. Organization can be a customer, a service provider or both.
A faculty, department or an institute. Organization can be also a service provider, for example, an HPC center.
In Academic Shared model, all organizations are service providers allocating resources to their users (research groups or classes) through their Projects.
Project
A project within an Organization. Used for organizing and isolating Resources and Users.
Service Provider
Organization that provides services to other organizations.
User types
| User | Support agent | Staff | |
|---|---|---|---|
| Web and API access | |||
| Can create support requests | |||
| Can provide user support | |||
| Can see all projects and resources | |||
| Can manage organizations | |||
| Can access admin area |
User roles in Organization
| Owner | Service Manager | Project Manager | System Administrator | |
|---|---|---|---|---|
| Manage Team | (pre-approved users) | |||
| Manage Projects | ||||
| Request and Manage Resources | ||||
| Approves creation of Resource Requests (Orders) | (configurable) | |||
| Approves Resource Requests (Orders) | ||||
| Manage Offerings (Service provider-specific) |
| PI | Service Manager | co-PI | Member | |
|---|---|---|---|---|
| Manage Team | (pre-approved users) | |||
| Manage Projects | ||||
| Request and Manage Resources | ||||
| Approves creation of Resource Requests (Orders) | (configurable) | |||
| Approves Resource Requests (Orders) | ||||
| Manage Offerings (Service provider-specific) |
| Resource allocator | Service Manager | PI | co-PI | Member | |
|---|---|---|---|---|---|
| Manage Team | (pre-approved users) | ||||
| Manage Projects | |||||
| Request and Manage Resources | |||||
| Approves creation of Resource Requests (Orders) | (configurable) | ||||
| Approves Resource Requests (Orders) | |||||
| Manage Offerings (Service provider-specific) |
User roles in Call management
| Role name | Scope | Description |
|---|---|---|
| Organization owner | Customer | Has full administrative access to manage organizations, offerings, orders, resources, projects, and call-related permissions. |
| Call organiser | Call organizer | Manages calls at the organization level, similar to Call manager but restricted to a specific customer scope. |
| Call manager | Call | Oversees the entire call process, including managing proposals, approving/rejecting applications, closing rounds, and handling permissions. |
| Call reviewer | Call | Reviews and evaluates submitted proposals within a call. |
| Proposal member | Proposal | Manages individual proposals, controlling their status and related workflows. |
Ended: Terminology
Changelog
7.7.7
Notes: Extra lucky
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.7.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.7.7-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.7.7 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.7.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.7.7-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Fri Aug 29 21:50:45 UTC 2025
7.7.6
Notes: None
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.7.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.7.6-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.7.6 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.7.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.7.6-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Sun Aug 24 19:56:01 UTC 2025
7.7.5
Notes: None
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind--image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind--source.cyclonedx.tar.gz
- OpenAPI specification for version (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport--image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport--source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Image SBOM: waldur-prometheus-exporter--image.cyclonedx.tar.gz
- Source SBOM: waldur-prometheus-exporter--source.cyclonedx.tar.gz
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Thu Aug 14 00:35:08 EEST 2025
7.7.4
Notes: None
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.7.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.7.4-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.7.4 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.7.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.7.4-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Thu Jul 31 08:39:40 UTC 2025
7.7.3
Notes: None
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.7.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.7.3-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.7.3 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.7.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.7.3-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Fri Jul 25 20:05:56 UTC 2025
7.7.2
Notes: None
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.7.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.7.2-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.7.2 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.7.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.7.2-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Wed Jul 23 16:42:28 UTC 2025
7.7.1
Notes: None
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.7.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.7.1-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.7.1 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.7.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.7.1-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Sun Jul 20 19:23:40 UTC 2025
7.7.0
Notes: Bugfixes and extensions
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.7.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.7.0-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.7.0 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.7.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.7.0-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Tue Jul 15 19:04:55 UTC 2025
7.6.9
Notes: Bugfixes
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.6.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.9-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.9 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.6.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.9-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Sun Jul 13 17:46:26 UTC 2025
7.6.8
Notes: Bugfixes and extensions
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.6.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.8-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.8 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.6.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.8-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Thu Jul 10 16:51:05 UTC 2025
7.6.7
Notes: None
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.6.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.7-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.7 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.6.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.7-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Sat Jul 5 19:36:57 UTC 2025
7.6.6
Notes: Fix of a broken migration
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.6.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.6-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.6 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.6.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.6-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Wed Jul 2 21:47:08 UTC 2025
7.6.5
Notes: Bugfixes
- Waldur MasterMind: tag diff
- Image SBOM: waldur-mastermind-7.6.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.5-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.5 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur HomePort: tag diff
- Image SBOM: waldur-homeport-7.6.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.5-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
- Waldur Python SDK: tag diff
- Waldur TypeScript/JavaScript SDK: tag diff
- Waldur Go SDK: tag diff
Date: Wed Jul 2 17:51:18 UTC 2025
7.6.4
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.6.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.4-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.4 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.6.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.4-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Jun 17 17:33:55 UTC 2025
7.6.3
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.6.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.3-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.3 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.6.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.3-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Jun 10 20:41:54 UTC 2025
7.6.2
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.6.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.2-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.2 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.6.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.2-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Jun 9 19:32:51 UTC 2025
7.6.1
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.6.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.1-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.1 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.6.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.1-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Jun 3 20:56:25 UTC 2025
7.6.0
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.6.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.6.0-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.6.0 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.6.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.6.0-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Jun 2 20:16:44 UTC 2025
7.5.9
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.9-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.9 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.9-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed May 28 19:33:40 UTC 2025
7.5.8
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.8-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.8 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.8-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri May 23 18:06:29 UTC 2025
7.5.7
Notes: Network bugfixes
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.7-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.7 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.7-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu May 22 19:39:06 UTC 2025
7.5.6
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.6-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.6 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.6-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed May 21 19:28:01 UTC 2025
7.5.5
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.5-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.5 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.5-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon May 19 15:40:55 UTC 2025
7.5.4
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.4-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.4 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.4-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue May 13 12:37:21 UTC 2025
7.5.3
Notes: Bugfixes and extensions
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.3-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.3 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.3-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon May 12 18:13:33 UTC 2025
7.5.2
Notes: Minor improvements
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.2-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.2 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.2-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon May 5 19:23:46 UTC 2025
7.5.1
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.1-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.1 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.1-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Apr 29 15:44:18 UTC 2025
7.5.0
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.5.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.5.0-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.5.0 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.5.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.5.0-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Apr 24 03:45:18 UTC 2025
7.4.9
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.9-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.9 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.9-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Apr 22 14:26:40 UTC 2025
7.4.8
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.8-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.8 (YAML): View API schema in OpenAPI
- API changes: View changes
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.8-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Apr 7 07:13:39 UTC 2025
7.4.7
Notes: Bugfix release
-
Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.7-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.7 (YAML): View API schema in OpenAPI
-
Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.7-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Mar 27 18:56:04 UTC 2025
7.4.6
Notes: None
-
Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.6-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.6 (YAML): View API schema in OpenAPI
-
Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.6-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Mar 26 21:27:56 UTC 2025
7.4.5
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.5-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.5 (YAML): View API schema in OpenAPI
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.5-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Mar 23 21:29:43 UTC 2025
7.4.4
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.4-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.4 (YAML): View API schema in OpenAPI
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.4-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Mar 19 17:42:10 UTC 2025
7.4.3
Notes: Use psycopg 3 PostgreSQL driver for Celery result backend
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.3-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.3 (YAML): View API schema in OpenAPI
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.3-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Mar 17 09:54:08 UTC 2025
7.4.2
Notes: Updated postgresql driver
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.2-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.2 (YAML): View API schema in OpenAPI
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.2-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Mar 16 22:10:21 UTC 2025
7.4.1
Notes: Bugfix release
-
Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.1-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.1 (YAML): View API schema in OpenAPI
-
Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.1-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Mar 12 18:46:14 UTC 2025
7.4.0
Notes: Bugfix release
-
Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.4.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.4.0-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.4.0 (YAML): View API schema in OpenAPI
-
Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.4.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.4.0-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Mar 11 19:54:43 UTC 2025
7.3.9
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.9-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.3.9 (YAML): View API schema in OpenAPI
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.9-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Mar 6 21:51:24 UTC 2025
7.3.8
Notes: Bugfix of daily quota widgets
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.8-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.8-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Feb 28 22:00:31 UTC 2025
7.3.7
Notes: Bugfixes, extended tenant replication capabilities
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.7-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.7-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Feb 28 17:02:21 UTC 2025
7.3.6
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.6-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.6-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Feb 24 08:51:19 UTC 2025
7.3.5
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.5-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.5-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Feb 23 20:30:42 UTC 2025
7.3.4
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.4-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.4-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sat Feb 22 19:55:18 UTC 2025
7.3.3
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.3-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.3-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Feb 14 19:17:37 UTC 2025
7.3.2
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.2-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.2-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Feb 13 18:59:06 UTC 2025
7.3.1
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.1-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.1-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Feb 13 09:24:01 UTC 2025
7.3.0
Notes: None
-
Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.3.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.3.0-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.3.0 (YAML): View API schema in OpenAPI
-
Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.3.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.3.0-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Mar 11 19:54:43 UTC 2025
7.2.9
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.9-source.cyclonedx.tar.gz
- OpenAPI specification for version 7.2.9 (YAML): View API schema in OpenAPI
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.9-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Mar 6 21:51:24 UTC 2025
7.2.8
Notes: Bugfix of daily quota widgets
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.8-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.8-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Feb 28 22:00:31 UTC 2025
7.2.7
Notes: Bugfixes, extended tenant replication capabilities
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.7-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.7-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.7-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Feb 28 17:02:21 UTC 2025
7.2.6
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.6-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.6-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.6-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Feb 24 08:51:19 UTC 2025
7.2.5
Notes: Bugfix
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.5-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.5-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.5-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Feb 23 20:30:42 UTC 2025
7.2.4
Notes: None
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.4-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.4-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.4-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sat Feb 22 19:55:18 UTC 2025
7.2.3
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.3-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.3-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.3-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Dec 30 10:50:45 UTC 2024
7.2.2
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.2-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.2-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.2-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Dec 24 14:28:07 UTC 2024
7.2.1
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.1-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.1-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.1-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Dec 18 21:58:41 UTC 2024
7.2.0
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.2.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.2.0-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.2.0-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.2.0-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Dec 17 22:53:25 UTC 2024
7.1.9
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.1.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.1.9-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.1.9-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.1.9-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Dec 12 20:51:10 UTC 2024
7.1.8
Notes: SBOM release
- Waldur Mastermind: tag diff
- Image SBOM: waldur-mastermind-7.1.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-mastermind-7.1.8-source.cyclonedx.tar.gz
- Waldur Homeport: tag diff
- Image SBOM: waldur-homeport-7.1.8-image.cyclonedx.tar.gz
- Source SBOM: waldur-homeport-7.1.8-source.cyclonedx.tar.gz
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Dec 12 14:31:04 UTC 2024
7.1.7
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Dec 1 20:44:47 UTC 2024
7.1.6
Notes: Revert refactoring of OIDC redirect URLs
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Nov 29 11:03:18 UTC 2024
7.1.5
Notes: Bugfixes and improvements
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Nov 28 20:23:37 UTC 2024
7.1.4
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Nov 19 21:56:14 UTC 2024
7.1.3
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Nov 18 20:21:38 UTC 2024
7.1.2
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Nov 18 10:13:10 UTC 2024
7.1.1
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Nov 12 18:06:51 UTC 2024
7.1.0
Notes: Extended agent, bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sat Nov 9 14:58:15 UTC 2024
7.0.9
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Nov 5 12:07:24 UTC 2024
7.0.8
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Nov 1 22:01:20 UTC 2024
7.0.7
Notes: Bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Oct 24 21:47:19 UTC 2024
7.0.6
Notes: Bugfixes and improvements
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Oct 23 19:43:43 UTC 2024
7.0.5
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Oct 17 19:44:16 UTC 2024
7.0.3
Notes: Expose set usage action in provider resource view
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Oct 13 10:51:03 UTC 2024
7.0.2
Notes: Initial version of migration
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Oct 11 20:32:54 UTC 2024
7.0.1
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Oct 9 21:28:21 UTC 2024
7.0.0
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Oct 1 19:48:59 UTC 2024
6.9.9
Notes: None
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Sep 29 08:20:55 UTC 2024
6.9.8
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Sep 17 21:37:59 UTC 2024
6.9.7
Notes: Improved username display in team tabs, bugfixes.
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Sep 13 14:15:32 UTC 2024
6.9.6
Notes: Openstack bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Sep 11 18:38:37 UTC 2024
6.9.5
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Sep 11 10:11:47 UTC 2024
6.9.4
Notes: Fix initialization of resource options
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Sep 10 07:29:29 UTC 2024
6.9.3
Notes: Fix docker executor issue due to a conflict with requests
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Sep 9 11:25:59 UTC 2024
6.9.2
Notes: Bugfixes, start of merging of Openstack applications.
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Sep 5 13:40:32 UTC 2024
6.9.1
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Aug 27 10:37:35 UTC 2024
6.9.0
Notes: Resource option update bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Aug 25 20:35:08 UTC 2024
6.8.9
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Aug 23 17:49:29 UTC 2024
6.8.8
Notes: None
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Aug 21 19:47:22 UTC 2024
6.8.7
Notes: Allow exposing external IPs for Openstack deployments
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sat Aug 17 08:00:05 UTC 2024
6.8.6
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Aug 15 16:25:26 UTC 2024
6.8.5
Notes: Extended user-onboarding options
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Aug 14 10:10:26 UTC 2024
6.8.4
Notes: User management UI improvements
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Aug 11 19:44:26 UTC 2024
6.8.3
Notes: Bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Aug 8 09:41:55 UTC 2024
6.8.2
Notes: Introduce new configuration method in HomePort
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Aug 7 11:01:56 UTC 2024
6.8.1
Notes: Fix resource name suggestion button
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Aug 1 19:14:05 UTC 2024
6.8.0
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Jul 31 18:44:21 UTC 2024
6.7.9
Notes:
- Add slugs for main objects
-
Bugfixes
-
Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Jul 25 08:33:49 UTC 2024
6.7.8
Notes:
- Bugfix
-
Extended SSH key hashes with sha256 and sha512
-
Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Jul 21 18:05:27 UTC 2024
6.7.7
Notes: Bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Jul 14 20:31:27 UTC 2024
6.7.6
Notes: Fix support configuration loading
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Jul 11 15:01:09 UTC 2024
6.7.5
Notes: Bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Jul 11 10:44:33 UTC 2024
6.7.4
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Jul 8 15:26:54 UTC 2024
6.7.3
Notes: Fixes broken 6.7.2 release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Jul 1 14:12:05 UTC 2024
6.7.2
Notes: None
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Jun 30 19:51:44 UTC 2024
6.7.1
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Jun 21 21:40:08 UTC 2024
6.7.0
Notes: Introducing renewed UI
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Jun 17 15:42:36 UTC 2024
6.6.9
Notes: None
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Apr 30 07:40:46 UTC 2024
6.6.8
Notes: Bugfixes.
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Apr 29 08:54:03 UTC 2024
6.6.7
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Apr 26 15:11:26 UTC 2024
6.6.6
Notes: Fix user management permissions.
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Apr 22 16:07:21 UTC 2024
6.6.5
Notes: None
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Apr 19 11:05:01 UTC 2024
6.6.4
Notes: Volume type selector bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Sun Apr 7 08:45:51 UTC 2024
6.6.3
Notes: Add support for Matomo user tracking
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Apr 4 17:29:13 UTC 2024
6.6.2
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Wed Apr 3 09:04:26 UTC 2024
6.6.1
Notes: Bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Apr 1 15:40:22 UTC 2024
6.6.0
Notes: None
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Apr 1 13:43:17 UTC 2024
6.5.9
Notes: SMAX configuration bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Mar 26 21:45:17 UTC 2024
6.5.8
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Mar 26 19:20:27 UTC 2024
6.5.7
Notes: Bugfixes
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Mar 25 17:45:10 UTC 2024
6.5.6
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Fri Mar 15 20:08:05 UTC 2024
6.5.5
Notes: Openstack caching bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Mar 12 19:31:25 UTC 2024
6.5.4
Notes: Bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Mar 11 20:22:24 UTC 2024
6.5.3
Notes: Bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Thu Mar 7 18:23:33 UTC 2024
6.5.2
Notes: None
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Mar 5 21:29:54 UTC 2024
6.5.1
Notes: Bugfix
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Tue Feb 27 20:45:36 UTC 2024
6.5.0
Notes: Bugfix release
- Waldur Mastermind: tag diff
- Waldur Homeport: tag diff
- Waldur Helm: tag diff
- Waldur Docker Compose: tag diff
- Waldur Prometheus Exporter: tag diff
Date: Mon Feb 26 22:29:21 UTC 2024
Ended: About
Admin guide ↵
Architecture
Waldur is composed of several components that work together to provide a comprehensive cloud management platform.
Components
- Homeport (web client, graphical interface) - React application
- Waldur site agent - Remote agent for managing provider resources and synchronizing data
- Mastermind API server - Django/Django REST Framework application implementing the core business logic
- Celery workers - Background processing of tasks
- Celery beat - Scheduling of periodic tasks for background processing
- PostgreSQL database - Storing persistent data, also serves as Celery result store in Kubernetes deployment
- RabbitMQ - Tasks queue and result store for Celery
Architecture diagram
flowchart TD
User[👤 User] --> Browser[🌐 Web Browser]
Browser --> |Sends request| Homeport[🏠 Homeport<br/>React Application]
Homeport --> |API calls| API[🔧 Mastermind API<br/>Django/DRF Server]
Agent[🤖 Waldur Site Agent<br/>Remote Resource Manager] --> |API calls| API
API --> |Saves data| DB[(🗄️ PostgreSQL<br/>Database)]
API --> |Pushes tasks| Queue[📋 Task Queue<br/>RabbitMQ]
Worker[⚙️ Celery Worker<br/>Background Processing] --> |Pulls tasks| Queue
Worker --> |Saves results| DB
Beat[⏰ Celery Beat<br/>Task Scheduler] --> |Schedules periodic tasks| Queue
classDef frontend fill:#d5e8d4,stroke:#82b366,stroke-width:2px
classDef backend fill:#dae8fc,stroke:#6c8ebf,stroke-width:2px
classDef infrastructure fill:#fff2cc,stroke:#d6b656,stroke-width:2px
classDef agent fill:#f8cecc,stroke:#b85450,stroke-width:2px
class User,Browser,Homeport frontend
class API,Worker,Beat backend
class DB,Queue infrastructure
class Agent agentBackups
Waldur keeps state in 2 components:
- Database - main persistency layer.
- Message queue - contains transient data mostly about scheduled jobs and cache.
Of these, only database needs to be backed up.
A typical approach to a backup is:
1. Create a DB dump
- An entire db dump
1 | |
- An entire db dump with cleanup commands:
1 | |
- A db dump containing only data
1 | |
2. Copy backup to a remote location
Using rsync / scp or more specialised tools.
3. Restore the created backup
1 | |
We suggest to make sure that backups are running regularly, e.g. using cron.
Billing and accounting in Waldur
Waldur's accounting and billing components are responsible for collecting accounting data and presenting it to end users. It features built-in reporting and accounting functionality, enabling the tracking of usage information for each project and its resources. During the service offering creation process, providers can define accounting components (such as CPU-h, GPU-h, and storage for HPC; CPU, RAM, and storage for VMs) and set the pricing plans for each component. Consumers can view usage information according to the policies established by the provider.
From a provider point of view, Waldur supports invoice generation and exposes enough of information via APIs to integrate with custom payment providers.
Waldur offers convenient tools for consumers to view resource usage information. The user interface displays overall usage data within a project and breaks down monthly usage across resource components such as CPU, GPU, and storage. End users can export this usage data in PDF, CSV, and XLSX formats. Access to information varies by user role: project members can see details for their specific projects, while organization owners can view information for all projects within their organization.
In addition to that, Waldur offers convenient way for exporting the usage information for visualization with Grafana.
Checklist for Go live
General
- Make sure that privacy policy and terms of use are updated to the site specific ones.
- Make sure that SMTP server and outgoing email address are configured and emails are sent out.
- Reboot test: restart all the nodes where Waldur components are running, application should recover automatically.
Security
- Remove or disable default staff accounts.
- Generate a new random secret key.
Backups
- Make sure that configuration of Waldur is backed up and versioned.
- Assure that DB backups are performed, i.e. backups are created when manually triggering
- Assure that DB backups files are on a persistent storage, preferably outside the storage used for Waldur's database.
Air-gapped deployments
- Make sure that Waldur docker images are mirrored to a local registry.
Cookie policy and Telemetry
Cookie policy
Waldur can save data about the user in a browser. Data type and policy depends on the component.
HomePort
- Saving of the latest view point of the user.
- Saving redirect information, i.e. where to forward from a certain state.
- Saving which authentication method was used by user for logging in.
- Saving user session token.
- Saving user language preference.
MasterMind
- Saving authentication token (cookie) when a user logs into /admin management interface.
Telemetry
Waldur can send telemetry metrics to the telemetry server. Metrics are sent only if the feature is enabled and the telemetry server is configured in the Waldur settings.
To toggle the feature on or off, navigate to Administration -> Settings -> Features in HomePort and enable or disable the Send telemetry metrics feature.

An example of telemetry metrics is shown below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Debugging guide for Waldur Mastermind
Introduction
This guide provides systematic approaches for troubleshooting Waldur Mastermind deployments. Use these techniques to diagnose issues with API, worker processes, email delivery, and resource provisioning.
Common debugging scenarios
Symptom-based troubleshooting guide
| Symptom | First Check | Next Steps |
|---|---|---|
| Users not receiving emails | Email logs | SMTP configuration, email templates |
| API returning errors | API logs | HTTP status codes, request parameters |
| Resources stuck in provisioning | Worker logs | Backend connectivity, quota issues |
| Slow performance | Database logs | Query performance, connection pooling |
| Authentication failures | API logs with auth filter | IdP configuration, token issues |
Accessing and filtering logs
Email-related events
Docker Compose
Check your specific deployment logs location, typically:
1 2 3 4 | |
Helm
1 2 | |
Component logs
API Logs in Helm
1 2 | |
Worker Logs in Helm
1 2 | |
Advanced log filtering
1 2 3 4 5 6 7 8 | |
Troubleshooting component issues
API server problems
- Check if the API container is running:
1 2 3 4 5 | |
- Verify API health endpoint:
1 2 | |
- Check for configuration issues:
1 2 3 4 5 | |
Worker issues
- Check Celery worker status:
1 2 3 4 5 | |
- Verify task queue connectivity:
1 2 3 4 5 | |
Database troubleshooting
- Check database connectivity:
1 2 3 4 5 | |
- Identify slow queries (requires database access rights):
1 2 3 4 5 | |
API endpoint issues
- Test endpoint with curl (store tokens in environment variables for security):
1 2 3 4 5 | |
- Common HTTP status codes:
- 401/403: Authentication/authorization issue
- 404: Resource not found
-
500: Server error (check logs)
-
For development environments only (⚠️ NEVER in production): Temporarily increase debug verbosity through admin settings panel or by editing configuration files.
Authentication problems
- Check token validity:
1 2 3 4 5 | |
- Verify IdP configuration:
1 2 | |
Resource provisioning failures
- Check resource state:
1 2 3 4 5 | |
- Check backend connectivity (if you have the right plugin installed):
1 2 | |
Log management
Log rotation
Both Docker Compose and Kubernetes deployments typically have configured log rotation:
1 2 3 4 5 | |
Centralized logging
For production deployments, consider:
- Fluentd for log collection
- Elasticsearch for storage and search
- Kibana for visualization
Debug mode activation
⚠️ Warning: Debug mode should ONLY be used in development environments.
For development deployments, you can enable debug mode:
1 2 3 | |
For production troubleshooting, use targeted logging instead of enabling full debug mode.
Grafana and Prometheus Metrics
Waldur Homeport includes a number of reports, but for cases when additional custom reports need to be created, it is possible to setup a time-series database, for example, Prometheus, and setup business metrics exporter for Waldur.
This would allow to create live dashboards exposing, for example, growth of adoption of the platform in terms of users and offerings, aggregated costs of resource on a daily or weekly basis, total active provisioned resources on an hourly basis and so on.
To achieve that, waldur-prometheus-exporter needs to be setup. In addition, we provide example Grafana dashboard json for visualising the metrics.
Creating a database user with restricted permissions
When integrating Grafana with Waldur's database, we will create a dedicated database user with restricted permissions. For this, run the following commands using psql under your Waldur database user:
1 2 3 4 5 | |
When setting up Grafana, use the postgres_stats user to connect to your database with the appropriate permissions.
Prometheus metrics
Prometheus exporter allows to setup export of business metrics and reporting information at the fine-grained granularity, for example, every 5 minutes or daily. Collected information can then be visualized in Grafana or other visualisation solutions.
Currently, the following metrics are supported:
- Total count of users;
- Total count of organizations;
- Total count of projects;
- Total count of users with owner permissions;
- Total count of support users;
- Total count of users with local registration method;
- Total count of users with saml2 registration method;
- Total count of users with tara registration method;
- Total count of users with eduteams registration method;
- Total count of active resources;
- Count of projects for each organization;
- Count of resources for every organization;
- Count of members for every organization;
- Resources limits by offerings, customer groups, customer countries;
- Aggregated usages by offerings, customer groups, customer countries;
- Aggregated usages per month;
- Count of users visible to service provider;
- Count of projects visible to service provider;
- Count of projects visible to service provider and grouped by OECD science code;
- Total cost of active resources per offering;
- Projects usages grouped by OECD science code;
- Projects limits grouped by OECD science code;
- Projects usages grouped by industry flag;
- Projects limits grouped by industry flag;
- Count unique users connected with active resources of a service provider;
- Count active resources grouped by offering;
- Count active resources grouped by country;
- Count active resources grouped by organization group;
- Count projects with active resources grouped by provider and OECD science code;
- Count projects with active resources grouped by provider and industry flag.
Hardware Requirements
This document outlines the recommended hardware requirements for deploying Waldur in different environments.
Deployment Methods
| Deployment Method | Minimum Requirements | Recommended Configuration | Notes |
|---|---|---|---|
| Docker Compose | • 4 vCPU • 12 GB RAM • 20 GB storage |
• 8 vCPU • 16 GB RAM • 40 GB storage |
Single server deployment, fastest to set up |
| Kubernetes (Helm) | See detailed component breakdown below | See detailed component breakdown below | Production-grade, scalable deployment |
Kubernetes Resource Requirements
Namespace Totals
| Requirement Level | CPU | Memory | Storage | Notes |
|---|---|---|---|---|
| Minimal | 10000m (10 vCPU) | 18000Mi (18 GB) | 32Gi | 1 replica per each Waldur component, 1 PostgreSQL, 1 RabbitMQ + room for updates (3 vCPU, 2 GB) |
| Recommended | 22000m (22 vCPU) | 45000Mi (45 GB) | 185Gi | 2 Waldur Mastermind API, 2 Waldur Workers, 1 Waldur Beat, 1 Waldur Homeport, 3 PostgreSQL HA replicas, 3 RabbitMQ replicas + room for updates (3 vCPU, 8 GB) |
Per-Component Requirements
| Component | CPU Requests | CPU Limits | Memory Requests | Memory Limits | Notes |
|---|---|---|---|---|---|
| Waldur Mastermind API | 500m | 1000m | 2000Mi | 4000Mi | Serves API requests, increase for high traffic |
| Waldur Mastermind Worker | 1000m | 2000m | 2000Mi | 4000Mi | Processes background tasks, critical for performance |
| Waldur Mastermind Beat | 250m | 500m | 500Mi | 1000Mi | Schedules periodic tasks |
| Waldur HomePort | 250m | 500m | 500Mi | 1000Mi | Serves web interface |
| PostgreSQL (Single) | 500m | 1000m | 1024Mi | 2048Mi | Main database, persistent storage |
| PostgreSQL (HA, per replica) | 1000m | 2000m | 2048Mi | 4096Mi | For high availability (3 replicas recommended) |
| RabbitMQ (per replica) | 1000m | 2000m | 2048Mi | 4096Mi | Message broker (3 replicas recommended) |
Storage Requirements
| Component | Minimal Size | Recommended Size | Notes |
|---|---|---|---|
| PostgreSQL | 10Gi | 40Gi | Main database storage, grows with user and resource count |
| RabbitMQ | 2Gi | 5Gi | Message queue persistence |
| Backups | 20Gi | 50Gi | Separate storage for database backups |
Scaling Recommendations
| User Scale | API Replicas | Worker Replicas | PostgreSQL Configuration | Additional Notes |
|---|---|---|---|---|
| Small (<100 users) | 1 | 1 | Single instance | Default values sufficient |
| Medium (100-500 users) | 2 | 2 | Single instance with increased resources | Enable HPA for API |
| Large (500+ users) | 3+ | 3+ | HA with 3 replicas | Enable HPA for all components, increase resource limits |
Performance Factors
Consider increasing resources beyond the recommended values if your deployment includes:
- High number of concurrent users (>50 simultaneous active sessions)
- Large number of resources being managed (>1000 total resources)
- Complex marketplace offerings with many components
- Frequent reporting or billing operations
- Integration with multiple external systems
Hardware Recommendations for Production
| Component | vCPU | RAM | Storage | Network |
|---|---|---|---|---|
| Control Plane Nodes | 4 cores | 8 GB | 100 GB SSD | 1 Gbps |
| Worker Nodes | 8 cores | 16 GB | 200 GB SSD | 1 Gbps |
| Database Nodes | 4 cores | 8 GB | 100 GB SSD | 1 Gbps |
| Load Balancer | 2 cores | 4 GB | 20 GB | 1 Gbps |
Managing Waldur with Ansible
NB! Repository with Ansible playbooks for Waldur management is not open-sourced. It is available to Waldur users that have purchased support packages.
Compatibility
Ansible version 2.9 is supported; code in this repository may work with other Ansible versions but it is not guaranteed.
Quick setup
- Make sure that you have:
- Folder containing managed-ansible Ansible installer (this one).
- Folder containing deployment-specific settings.
- Copy
setup_deployment.sh.exampletosetup_deployment.sh, adjust:- INSTALLER_PATH - full path to current folder
- DEPLOYMENT_CONFIG_PATH - full path to folder with deployment-specific information
- DEPLOYMENT_IDS - list of deployment IDs you want to manage.
- Run ./setup_deployment.sh. This will create required symlinks.
- Run
ansible-playbook -DC <deployment_id.yml>to check what installer will do. - Run
ansible-playbook -D <deployment_id.yml>to apply the installer.
Upgrading installer
- Download a new archive into a separate folder and unpack.
-
Check what has changed:
rsync --dry-run -avzh unpacked-folder-eg-ansible-3.2.3/ /path/to/installer/ -
Do the upgrade:
rsync -avzh unpacked-folder-eg-ansible-3.2.3/ /path/to/installer/
Upgrading Waldur
Upgrading Waldur to a new version is achieved by following the checklist:
- Update deployment-specific variables for the new version in
groups_vars/<deployment_id>/varsandgroups_vars/<deployment_id>/vault(if setting is private). - Update target version in
groups_vars/<deployment_id>/vars: setwaldur_homeport_versionandwaldur_mastermind_versionto a new version of the Waldur release. - Run
ansible-playbook -DC <deployment_id.yml>to check what installer will do during the upgrade. - Run
ansible-playbook -D <deployment_id.yml>to perform an upgrade.
Add new deployment
Infrastructure:
- Prepare servers matching requirements.
- Make sure you can access them by SSH by running only
ssh <host>. Otherwise you should tweak~/.ssh/configfile or describe connectivity in the Ansible inventory.
Ansible (this repository):
- Add new deployment-specific host group to
hostsfile (example:[foo]); add hosts to this group. - Add hosts to Waldur role groups in
hostsfile. - Add variable files for new deployment:
group_vars/foo/varsandgroup_vars/foo/vault - Add deployment specific information under
deploymentsfolder. - Copy existing playbook that is the closest match for a new deployment; modify as needed
- Run Ansible playbook to set up deployment:
ansible-playbook -D foo.yml
Remove deployment
Ansible (this repository):
- Delete deployment-specific playbook, roles, tasks, templates etc.
- Delete variable files:
rm -rf group_vars/foo - Delete deployment-specific host group and all deployment-specific hosts from
hostsfile (example:[foo])
Managing Waldur deployed as Helm
Requirements:
- Installed and running
kubernetessystem on a node (e. g. minikube) - Installed
kubectlon the node
Place all configuration files for release in next manner:
values.yaml->roles/waldur_helm/files/waldur_helm/waldur/values.yaml->roles/waldur_helm/files/waldur_helm/waldur/- Files related to TLS ->
deployments/<deployment_id>/tls/ - Files related to white-labeling ->
deployments/<deployment_id>/whitelabeling/ - Files related to mastermind templates ->
deployments/<deployment_id>/mastermind_templates/ - Files related to stress testing ->
deployments/<deployment_id>/locust_tasks/ - Files related to SAML2 ->
deployments/<deployment_id>/waldur_saml2/
More configuration info:
Multilingual User Interface
Waldur user interface is available in several languages. Default language is English, but the end users may have several other options to choose from. The number of available languages depends on the Waldur's configuration. Current status of the overall avalable languages are visible on the Localazy website.
Waldur uses Localazy service, to translate the user interface. Localazy is a continuous localization platform and web-based translation management system. This allows to use AI or human translation. Everyone can contribute to Waldur's translation by adding new translantions or fixing current ones, more information here.
OfferingUser management
OfferingUser is a model in Waldur, which represents a link between an offering available in marketplace and a user. A service provider can utilize it to create an account for a service visible for all the offering resources, for example: a user account in a SLURM cluster. As an account, an OfferingUser can have a custom username different from user's one.
This feature is available for all offering types.
For Basic, SLURM remote and Custom script offerings, offering-users are created automatically when a user is added to the project with active offering resources or when a new offering resource is created.
In case of Rancher, offering-users are created when users are imported from a Rancher cluster.
In case of SLURM, offering-users are created when association are imported from a SLURM cluster.
Defining the OfferingUser management policy
A service provider can define the policy via User Interface:
- Select the particular offering and go to Edit section.
-
Select Integration and then User management from the top menu.
-
Here it is possible to enable the automatic creation of offering users and define how it is done exactly.
- Enable automatic creation of offering users: Enable/disable automatic creation of offering users;
- Shared user password: Set common password for all offering users;
-
Username generation policy: Define how usernames are generated:
Service provider: a service provider should manually set usernames for the offering users (default strategy);Anonymized: usernames are generated with<prefix>_<number>, e.g. "anonym_00001"; the prefix must be specified in the plugin options of the offering asusername_anonymized_prefix;Full name: usernames are constructed using first and last name of users with numerical suffix, e.g. "john_doe_01";Waldur username: uses a Waldur instance username of a user;FreeIPA: uses the username field of a corresponding FreeIPA profile;Identity claim: uses dedicated attribute released by the IdP as a username.
-
Initial UID number: refers to the lowest numerical user ID (UID) assigned to regular users;
- Initial primary group number: refers to Group ID (GID) assigned to a user when they are created;
- Home directory prefix: Allows to define home directory prefix for the offering users.
-
After this, the usernames are regenerated for all the linked offering users.
Granting user access to resource
An access to a resource can be granted by service provider for a particular user with specification of username. A result is represented by triplet [user, resource, username]. For this purpose, create_remote_offering_user should be invoked. This method requires the following arguments:
- offering - UUID or URL of a target offering;
- user - UUID or URL of a target user;
- username - username for the user.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
In case if SDK usage is not possible, HTTP request can be sent:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
Granting user access to corresponding resources in batch manner
A service provider can grant access mentioned in the previous section to all resources used in projects including a target user. For such access creation or update, set_offerings_username is used. The method requires the following arguments:
- service_provider_uuid - UUID of a target service provider;
- user_uuid - UUID of a target user;
- username - the new username.
1 2 3 4 5 6 7 8 9 | |
Waldur roles and permissions
Overview
Waldur provides a flexible Role-Based Access Control (RBAC) system, enabling administrators to manage user permissions efficiently. Roles define the actions users can perform within the system, ensuring structured and secure access to resources.
This guide outlines Waldur's roles, their associated permissions, and how they govern access within the platform.
Managing roles in Waldur
Roles in Waldur are structured to define user access within specific scopes. The key attributes of a role include:
- Name – A unique identifier for the role
- Scope – The context in which the role is applicable (e.g., Organization, Project, Call, etc.)
- Description – A brief explanation of the role's purpose and responsibilities
- Active – Indicates whether the role is currently available for assignment
Users can be assigned one or more roles within an Organization, Project, Call, Offering, Service Provider, Proposal, or Call managing organization scope.
Default roles and permissions
Waldur provides predefined roles to streamline access management across different scopes. Below is an overview of available roles, grouped by scope.
Organization roles
Scope: Organization
| Name | Description | Active |
|---|---|---|
| Customer owner | The highest-level role in an organization, granting full administrative control | Yes |
| Customer manager | A managerial role for service providers within an organization | Yes |
| Customer support | Provides limited support access within an organization | No |
Project roles
Scope: Project
| Name | Description | Active |
|---|---|---|
| Project administrator | Grants full control over a project, including resource and order management | Yes |
| Project manager | Similar to the administrator role but includes additional permission management capabilities | Yes |
| Project member | A limited role with basic project access | No |
Offering roles
Scope: Offering
| Name | Description | Active |
|---|---|---|
| Offering manager | Manages an offering's configuration and associated resources | Yes |
Call managing organization roles
Scope: Call managing organization
| Name | Description | Active |
|---|---|---|
| Customer call organizer | An organization-specific role for handling calls | Yes |
Call roles
Scope: Call
| Name | Description | Active |
|---|---|---|
| Call manager | Oversees calls and proposal approvals | Yes |
| Call reviewer | A role dedicated to reviewing submitted proposals | Yes |
Proposal roles
Scope: Proposal
| Name | Description | Active |
|---|---|---|
| Proposal manager | Responsible for managing proposals within a call | Yes |
Service provider roles
Scope: Service provider
| Name | Description | Active |
|---|---|---|
| Service provider manager | Manages service provider-specific settings and operations | Yes |
Role assignment and management
Roles are assigned to users based on their responsibilities and required access levels. Administrators can:
- Add or remove user roles
- Modify permissions associated with roles
- Revoke roles manually or set expiration times for temporary access
Managing roles via the interface
The Waldur administration interface offers an intuitive way to manage user roles. Staff users can:
- Navigate to the Administration panel
- Select the User roles section under Settings menu
- Modify existing roles by updating permissions or changing their status
- Disable roles as needed
Using the administration interface simplifies role management and ensures a structured approach to access control.
⚠️ Important notes:
- Roles should follow the principle of least privilege
- Some roles are disabled by default (e.g., Customer support)
- Regular audits of role assignments are recommended
- Certain roles are scope-restricted (e.g., Customer call organizer)
- Changes to role permissions should be carefully considered
- Document any custom role configurations
Waldur Shell
Waldur provides a shell for command line scripting. To start a shell, run waldur shell in the MasterMind context.
For Docker Compose deployments, please run:
docker exec -it waldur-mastermind-api waldur shell
For Helm-based K8s deployments, please run:
1 2 3 | |
Examples
Setting/removing staff permissions for a user
1 2 3 4 5 6 7 8 | |
Creating a new user with token only authentication
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Triggering pulling of usage data from remote Waldur
1 2 3 | |
Apply changes in Waldur HPC plugin to existing users
1 2 3 4 5 | |
Cleanup leftover ports from OpenStack Project
Lookup UUID of an OpenStack tenant (aka backend_id in Waldur).
1 2 3 4 5 6 7 8 9 10 11 12 | |
Add affiliations to user
1 2 3 4 5 | |
Create a service user for API access
To create a service user - without valid access credntials and non-expiring Token, please run the following script.
1 2 3 4 5 6 7 8 9 10 11 | |
Synchronise SLURM associations
Note: <allocation-uuid> field can be found in an allocations's details page.
Select Organization -> Select project -> Select allocation -> Find 'UUID' field in the page.
1 2 3 4 5 6 7 8 | |
Lookup user details from Eduteams
Note: USER_CUID is a unique ID of user in Eduteams.
1 2 3 4 5 | |
Generate report for list of projects and their details
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Generate report for OpenStack resources across projects
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | |
Update limits for all tenants in a specific organization
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | |
Generate cost report for a specific organization by month
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Generate a report for VMs created within a specific tenant offering
Upon running the script, please change year and offering_uuid variables.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | |
Migrate users to a new Keycloak instance
Introduction
There are 3 scripts involved:
-
export-keycloak-user-permissions.py: exports Keycloak user data to a
.yamlfile in the following format:1 2 3 4 5 6 7 8 9 10 11 12 13 14
- username: johndoe email: johndoe@example.com full_name: John Doe permissions: - type: project project_uuid: bed45d99e83d4c17a5bf5908ad70554e role_uuid: e4130fde02474571a5166bb6742dc2d0 project_name: "Project 01" role_name: "PROJECT.MANAGER" - type: customer customer_uuid: 1aaec6489ea7492cbe0401997de13653 role_uuid: 16ec8cf8874d467d9a2c7a0c822c6b3e customer_name: "Organization 01" role_name: "CUSTOMER.OWNER" -
delete-keycloak-users.py: removes data about all the users from an old Keycloak instance
-
invite-keycloak-users.py: creates and sends invitations to the user emails based on their roles in project and organizations
When you are ready to migrate users to the new Keyaloak instance:
- copy the script file to the
waldur-mastermind-apicontainer usingdocker cporkubectl cpcommands; - connect to the container shell using
docker execorkubectl exec; - execute the scripts sequentially using
waldur shell:
1 2 3 | |
export-keycloak-user-permissions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | |
delete-keycloak-users
1 2 3 4 | |
invite-keycloak-users
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | |
User deletion examples
Basic user deletion
1 2 3 4 5 6 7 8 9 | |
Find and delete users with partial information
1 2 3 4 5 6 7 | |
Find and delete user based on OfferingUser information
1 2 3 4 5 6 7 8 9 10 11 | |
⚠️ Important notes:
- Always verify you have the correct user before deletion
- User deletion will cascade and remove all related permissions and roles
- For users authenticated via external providers (LDAP, SAML, etc.), this only removes the user from Waldur
Deployment ↵
Waldur Docker-compose deployment
Prerequisites
- at least 8GB RAM on Docker Host to run all containers
- Docker v1.13+
Prepare environment
1 2 3 4 5 | |
Booting up
1 2 3 4 5 6 7 8 9 10 11 12 | |
Waldur HomePort will be accessible on https://localhost. API will listen on https://localhost/api.
Healthcheck can be accessed on https://localhost/health-check.
Tearing down and cleaning up:
1 | |
Logs
Logs emitted by the containers are collected and saved in the waldur_logs folder. You can change the location by
editing environment variable (.env) and updating LOG_FOLDER value.
Known issues
When Waldur is launched for the first time, it applies initial database migrations. It means that you may need to wait few minutes until these migrations are applied. Otherwise you may observe HTTP error 500 rendered by REST API server. This issue would be resolved after upgrade to Docker Compose 1.29.
To use a custom script offering type, it should be possible to connect to /var/run/docker.sock from
within the Waldur containers. If you are getting a permission denied error in logs, try setting more
open permissions, for example, chmod 666 /var/run/docker.sock. Note that this is not a secure
setup, so make sure you understand what you are doing.
Upgrading Waldur
1 2 | |
Upgrade Instructions for PostgreSQL Images
Upgrade Script
To simplify the upgrade process, an upgrade script db-upgrade-script.sh is included in the root directory, and can be used to automate the upgrade process.
Usage Instructions
- Ensure the script has execution permissions:
bash
chmod +x db-upgrade-script.sh
-
Update the
WALDUR_POSTGRES_IMAGE_TAGandKEYCLOAK_POSTGRES_IMAGE_TAGin the.envfile to the desired versions.:1 2
WALDUR_POSTGRES_IMAGE_TAG=<your_version> KEYCLOAK_POSTGRES_IMAGE_TAG=<your_version> -
Run the sript:
bash
./db-upgrade-script.sh
Upgrade Prerequisites
- Backup existing data (if needed).
Backup Commands
You can back up the database using pg_dumpall.
For Waldur DB:
1 | |
For Keycloak DB:
1 | |
Shut down containers:
1 | |
Note: Before upgrading PostgreSQL, please delete the
pgsqlfolder within the project directory if it exists, as well as thekeycloak_dbdocker volume if it exists. These were created with the previous PostgreSQL version, and they will be recreated with docker compose during upgrade.You can remove the
pgsqlfolder by running:
1sudo rm -r pgsql/To remove the
keycloak_dbvolume, run:
1docker volume rm waldur-docker-compose_keycloak_dbWarning: This action will delete your existing PostgreSQL data. Ensure it is backed up before proceeding.
Upgrade Steps
-
Update PostgreSQL Versions
Update the
WALDUR_POSTGRES_IMAGE_TAGandKEYCLOAK_POSTGRES_IMAGE_TAGin the.envfile to the required versions.1 2
WALDUR_POSTGRES_IMAGE_TAG=<your_version> KEYCLOAK_POSTGRES_IMAGE_TAG=<your_version> -
Pull the New Images
Pull the new PostgreSQL images:
1docker compose pull -
Optional: Restore Data (if backups have been made)
Start the database containers to load the dump data:
1docker compose up -d waldur-db keycloak-dbRestore the contents of the database from the dump file:
For Waldur DB:
1cat waldur_upgrade_backup.sql | docker exec -i waldur-db psql -U waldurFor Keycloak DB:
1cat keycloak_upgrade_backup.sql | docker exec -i keycloak-db psql -U keycloakPost-update steps
If the new psql version is later than 14, you need to create SCRAM tokens for the existing users. For this, run the following lines, which will automatically create necessary tokens for the users.
1 2 3 4
export $(cat .env | grep "^POSTGRESQL_PASSWORD=" | xargs) docker exec -it waldur-db psql -U waldur -c "ALTER USER waldur WITH PASSWORD '${POSTGRESQL_PASSWORD}';" export $(cat .env | grep "^KEYCLOAK_POSTGRESQL_PASSWORD=" | xargs) docker exec -it keycloak-db psql -U keycloak -c "ALTER USER keycloak WITH PASSWORD '${KEYCLOAK_POSTGRESQL_PASSWORD}';" -
Start containers
Start all of the containers:
1docker compose up -d -
Verify the Upgrade
Verify the containers are running with the new PostgreSQL version:
1docker ps -aCheck container logs for errors:
1 2
docker logs waldur-db docker logs keycloak-db
Using TLS
This setup supports following types of SSL certificates:
- Email - set environment variable TLS to your email to register Let's Encrypt account and get free automatic SSL certificates.
Example:
1 | |
- Internal - set environment variable TLS to "internal" to generate self-signed certificates for dev environments
Example:
1 | |
- Custom - set environment variable TLS to "cert.pem key.pem" where cert.pem and key.pem - are paths to your custom certificates (this needs modifying docker-compose with path to your certificates passed as volumes)
Example:
1 | |
Custom Caddy configuration files
To add additional caddy config snippets into the caddy virtual host configuration add .conf files to config/caddy-includes/
Keycloak
Keycloak is an Identity and Access Management software bundled with waldur-docker-compose.
To create a keycloak admin account set KEYCLOAK_ADMIN env variable in docker-compose.yaml and KEYCLOAK_ADMIN_PASSWORD in .env file.
After this, you can login to the admin interface at https://localhost/auth/admin and create Waldur users.
To use Keycloak as an identity provider within Waldur, follow the instruction here. The discovery url to connect to Keycloak from the waldur-mastermind-api container is:
1 | |
Integration with SLURM
The integration is described here.
Whitelabeling settings
To set up whitelabeling, you need to define settings in ./config/waldur-mastermind/whitelabeling.yaml.
You can see the list of all whitelabeling options below.
General whitelabeling settings
- site_name
- site_address
- site_email
- site_phone
- short_page_title
- full_page_title
- brand_color
- hero_link_label
- hero_link_url
- site_description
- currency_name
- docs_url
- support_portal_url
Logos and images of whitelabeling
The path to a logo is constructed like so: /etc/waldur/icons - is a path in the container (Keep it like it is) + the name of the logo file from config/whitelabeling directory.
All-together /etc/waldur/icons/file_name_from_whitelabeling_directory
- powered_by_logo
- hero_image
- sidebar_logo
- sidebar_logo_mobile
- site_logo
- login_logo
- favicon
Readonly PostgreSQL user configuration
In order to enable /api/query/ endpoint please make sure that read-only user is configured both in PostgreSQL and in the environment variables.
1. Create PostgreSQL readonly user
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
2. Configure environment variables
Add the following environment variables to your .env file:
1 2 | |
Note: Replace {readonly_password} with the actual password you used when creating the readonly user, and {readonly_username} with your chosen readonly username (e.g., "readonly").
Migration from bitnami/postgresql to library/postgres DB image
After migration from the bitnami/postgresql to library/postgres DB image, you might notice a working in logs like this:
1 2 3 4 | |
In this case, you can simply update the collaction version and reindex the Waldur DB and the public schema:
1 2 3 4 5 6 7 8 9 | |
Argocd ↵
Waldur deployment in ArgoCD
This repository contains ansible playbook settings for infrastructure setup (ansible/ directory)
together with Kubernetes manifest files for different applications managed by ArgoCD (applications/ directory).
Infrastructure setup
Before beginning with application management, infrastructure setup is required. For this, you should use the playbook ansible/cloud-infrastructure-setup.yaml. Given an access to virtual machines with python3.8+ installed, it is capable of:
- Disk setup in case if each virtual machine has a separate disk attached as a device;
- Installation of RKE2-managed Kubernetes cluster with a single server and workers;
- Installation of Helm tool binary;
- Installation of ArgoCD: both Kubernetes manifests and command-line binary.
All these steps can be customized via either ansible/vars.defaults or ansible/vars.custom file.
The example infra has 3 VMs with python3.9 installed.
After establishing ssh-based connection to the machines, you can execute the playbook:
1 | |
After successful run, the infra is ready for further steps.
Installation and management of applications
You should run all the command described below on the RKE2 server, where ArgoCD binary installed, only.
Prerequisite
The following lines ensure user login to ArgoCD server via argocd binary.
They should run prior to every application-related action.
1 2 3 | |
You can validate authentication and access:
1 2 | |
Longhorn
You can use this app manifest and this custom values file for Longhorn installation.
This script creates a new Kubernetes namespace, where application is created synched:
1 2 3 | |
PostgreSQL operator
You can use this app manifest and this custom values file for PostgreSQL operator installation.
This script creates a new Kubernetes namespace, where application is created synched:
1 2 3 | |
Waldur
Waldur requires PostgreSQL database as a persistent storage and RabbitMQ as a message queue to be up and running.
Firstly, you need to create a namespace for Waldur:
1 | |
Secondly, create and sync PostgreSQL application managed by the operator installed before. You can use this manifest for ArgoCD app and this manifest for modification of the DB settings.
1 2 | |
Finally, you can deploy Waldur using this app manifest and these values. NB: RabbitMQ is included in the deployment.
1 2 | |
Ended: Argocd
Helm ↵
Waldur Helm
Waldur is a platform for creating hybrid cloud solutions. It allows building enterprise-grade systems and providing self-service environment for the end-users.
Introduction
This chart bootstraps a Waldur deployment on a Kubernetes cluster using the Helm package manager.
Installing prerequisites
- Install Kubernetes server, for example, using minikube
- Install Kubernetes client, i.e. kubectl
- Install Helm
Installing the chart
-
Add the Waldur Helm repository
1helm repo add waldur-charts https://waldur.github.io/waldur-helm/ -
Install dependencies or enable them in Helm values
2.1. Quick setup:
1 2 3 4 5 6 7 8 9 | |
2.2. Advanced setup of dependencies Setup database using one of: - Simple PostgreSQL DB: instructions or - PostgreSQL HA DB: instructions or - Integrate with external DB: instructions
1 2 3 | |
-
Install the Helm chart
1helm install my-waldur waldur-charts/waldur -f path/to/values.yml
NB After this command, Waldur release will run in default namespace.
Please, pay attention in which namespace which release is running.
For instance, you can install Waldur release
in test namespace in the following way:
-
Create
testnamespace:1kubectl create namespace test -
Install release:
1helm install waldur waldur-charts/waldur --namespace test
However, postgresql release and waldur should be installed in the same namespace in order to share a common secret with DB credentials.
Adding admin user
Open waldur-mastermind-worker shell and execute the following command:
-
Get waldur-mastermind-worker pod name
1 2 3
# Example: kubectl get pods -A | grep waldur-mastermind-worker # --> # default waldur-mastermind-worker-6d98cd98bd-wps8n 1/1 Running 0 9m9s -
Connect to pod via shell
1 2
# Example: kubectl exec -it deployment/waldur-mastermind-worker -- /bin/bash -
Execute command to add admin user
1waldur createstaffuser -u user -p password -e admin@example.com
Waldur Helm chart release upgrading
Delete init-whitelabeling job (if exists):
1 | |
Delete load features job (if exists):
1 | |
Upgrade Waldur dependencies and release:
1 2 | |
Restart deployments to apply configmaps changes:
1 2 3 4 | |
Private registry setup
A user can use private registry for Docker images.
For this, the corresponding credentials should be registered in a secret,
name of which should be placed in .Values.imagePullSecrets.
A secret can be created trough CLI.
Configuration docs
Configuration documentation: index
Docs ↵
Waldur Helm chart configuration
Outline:
Bootstrap configuration
You can create a bootstrapping script and Helm will run it right after Waldur release installation.
Example script:
1 2 3 4 5 6 7 8 | |
This script with all necessary additional files
should be placed in bootstrap.dir directory.
Additional configuration variables (bootstrap prefix):
enabled- enable/disable bootstrapscript- main script file inbootstrap.dirfolder.dir- directory with all bootstrap files
Moreover, that is better to install release with --wait flag:
1 | |
This allows running migrations job before a bootstrap one.
more info: link,
Hooks and the Release Lifecycle section)
NB:
-
A script, which contains interaction with a db can fail due to not all migrations are applied. Automatical reruning of the bootstrap job is normal behaviour in such situations.
-
Hence, the script should be idempotent.
External DB integration
Waldur Helm can use an external PostgreSQL deployed within the same Kubernetes cluster.
For this, you need to set the following variables in values.yaml:
externalDB.enabled- toggler for integration; requirespostgresql.enabledandpostgresqlha.enabledto befalseexternalDB.flavor- a type of the DB management system; currently onlyzalando(Zalando operator) is supportedexternalDB.secretName- name of the secret with PostgreSQL credentials for Waldur user; should includeusernameandpasswordkeysexternalDB.serviceName- name of the service linked to PostgreSQL master
Zalando-managed PostgreSQL cluster example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
Backup setup
Enable backups for a cluster with the following addition to a manifest file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
You also need to create a secret file with the credentials for the storage:
1 2 3 4 5 6 7 8 9 10 11 | |
Trigger a base backup manually
Connect to the leader PSQL pod and execute the following commands:
1 2 3 4 5 6 7 8 9 10 | |
Restore DB from backup
The preferable option is creation a new instance of PostgreSQL cluster cloning data from the original one.
For this, create a manifest with the following content:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |
Then, apply the manifest to the cluster, change externalDB.{secretName, serviceName} after DB bootstrap and upgrade Waldur release.
Official documentation
Documentation of installation link: Helm
Installing Helm
- Download and install Helm
1 2 3 | |
- Check the version
1 | |
Host aliasing
You can specify additional hosts for Waldur containers in the same manner as the /etc/hosts file using host aliasing. To create aliases, a user needs to modify the hostAliases variable in waldur/values.yaml file. Example:
1 2 3 4 | |
This will add a record for my.host.example.com to the /etc/hosts file of all the Waldur containers
HPA setup and configuration
It is possible to use cpu-utilization-based HPA
for API server (aka waldur-mastermind-api) and
Celery executor (aka waldur-mastermind-worker and waldur-mastermind-beat) pods.
Setup
If you use minikube, you need to enable metrics-server using next command:
minikube addons enable metrics-server
Configuration
In values.yaml file you can configure HPA for:
-
API server (
hpa.apiprefix):1.1
enabled- flag for enabling HPA. Possible values:truefor enabling andfalsefor disabling.1.2
resources- custom resources for server.requests.cpuparam is mandatory for proper HPA work.1.3
cpuUtilizationBorder- border percentage of average CPU utilization per pod for deployment. -
Celery (
hpa.celeryprefix):2.1
enabled- flag for enabling HPA, the same possible values as for API server.2.2
workerResources- custom resources for celery worker.requests.cpuparam is mandatory for proper HPA work.2.3
beatResources- custom resources for celery beat.requests.cpuparam is mandatory for proper HPA work.2.4
cpuUtilizationBorder- border percentage of average CPU utilization per pod for deployment.
Limiting network access to Mastermind APIs
Waldur Helm allows limiting network access to Mastermind API endpoints - i.e. /api/, /api-auth/, /admin/ - based on whitelisting the subnets from where access is allowed. To define a list of allowed subnets in CIDR format for the all the API endpoint, please use ingress.whitelistSourceRange option in values.yaml. Example:
1 2 3 4 | |
Given this value, only IPs from 192.168.22.0/24 subnet are able to access Waldur Mastermind APIs.
In case you want to limit access to /api/admin/ endpoint specifically, there is another option called ingress.whitelistSourceRangeAdmin:
1 2 3 4 | |
This will limit access to the admin endpoint only for 192.168.22.1 IP. Note: The whitelistSourceRangeAdmin option takes precedence over whitelistSourceRange.
In case of multiple subnets/IPs, comma separated list can be used as a value. E.g.: 192.168.22.1/32,192.168.21.0/24. This works for both options.
Official documentation
Documentation of installation link: doc
Installing kubectl
- Download and install latest kubectl
1 | |
- Add executable mode for kubectl
1 | |
- Move kubectl binary into your PATH
1 | |
- Check the version
1 | |
- Show running Pods in cluster
1 2 3 4 5 6 7 8 9 10 11 | |
Locust cofiguration
This chart uses Locust tool for stress testing.
Installation
Locust runs as another standalone Helm release.
Install Locust:
1 | |
After release installation, some instructions regarding access to WEB UI for Locust printed in stdout.See this section for more information about UI interaction.
Configuration
You can change locust config with the folloving variables in locust-values.yaml:
image.repository- repository of locust imageimage.tag- tag of locust imagemaster.config- key-value configuration records for locust master (used as container env vars)master.config.locust-host- URL of target mastermind service. See this doc for detailsmaster.config.target-host- same asmaster.config.locust-hostmaster.config.locust-mode-master- master mode flag. Please, don't change it, because for new versions of locust this flag is mandatory for a master node.master.config.locust-locustfile- path to the injected locust file. Please, don't change file directory (/locust-tasks/), because it is fixed mountpoint for pods. The filename itself can have any value, but should be the same as key in the configmap (worker.config.configmapName).worker.config- key-value configuration records for locust worker (used as container env vars).worker.config.configmapName- name of configmap with locustfileworker.config.locust-mode-worker- worker mode flag. Please, don't change it, because for new versions of locust this flag is mandatory for a worker node.worker.config.locust-locustfile- path to the injected locust file. Same rules as formaster.config.locust-locustfile.worker.config.locust-master-node-host- hostname of the locust master service, which is formatted as<locust_release_name>-master-svcworker.replicaCount- number of locust workers
You can find available variables for master and worker configuration from chart desription and official locust documentation (most of the flags and args can be injected through env vars).
NB: The original helm chart image (greenbirdit/locust:0.9.0)
has outdated locust version and doesn't support most of
the current env variables from the first link above.
Thus master.config.target-host is used only for compatibility
and must be equal to master.config.locust-host
In the values.yaml you need to setup the following vars (stressTesting prefix):
enabled- enable/disable stress testinglocustFilePath- path to the locust file (should be in thewaldur/directory)
Waldur Marketplace script plugin setup
Available options in values.yaml:
waldur.marketplace.script.enabled- enable/disable pluginwaldur.marketplace.script.dockerImages- key-value structure, where key is a programming language and value - a corresponding docker image tagwaldur.marketplace.script.k8sNamespace- Kubernetes namespace, where jobs will be executedwaldur.marketplace.script.kubeconfigPath- path to local file with kubeconfig contentwaldur.marketplace.script.kubeconfig- kubeconfig file content takes precedence over.kubeconfigPathoptionwaldur.marketplace.script.jobTimeout- timeout for Kubernetes jobs
Mastermind templates configuration
If you want to configure custom mastermind templates, you should:
-
Setup
waldur.mastermindTemplating.mastermindTemplatesPathin values.yaml (by default, it is equal tomastermind_templates/mastermind-templates.yaml). Alternatively, you can usewaldur.mastermindTemplating.mastermindTemplatescontaining.yamlfile strings to get rid of file usage. -
Put all the custom templates into the file in a following way:
NB: The keys in the file should have <waldur_application_name>/<event_name>_<postfix>.<extension>, where <postfix> can be either message or subject, and <extension> - either txt or html
1 2 3 4 5 | |
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Migration from Postgresql HA
Plan:
- Scale api, beat, worker -> 0
- Backup — using backup job
- group_vars/puhuri_core_prd - helm_pg_ha_enabled: no ===> CANCEL THE UPDATING PIPELINE!
- Run dependency update ==> leads to a working single psql
- Restore DB — using recovery job
- Run a common update pipeline
- Validate that login works
- Drop old psql ha, drop pvc
1 2 3 4 5 6 7 8 9 10 11 12 | |
Official documentation
Documentation of installation link: doc
Installing minikub
-
Download and install minikube
-
For Debial/Ubuntu:
1 2 | |
- For Fedora/Red Hat
1 2 | |
- Others (direct installation)
1 2 | |
- Set docker as a default driver
1 2 3 | |
- Start local kubernetes cluster
1 2 3 4 5 6 7 | |
Min.io configuration
Min.io storage is used as a database backup storage.
Add bitnami repo to helm:
1 | |
Install minio release:
1 | |
You can change minio config with next vars (in minio.values file):
accessKey.password- access key id for storagesecretKey.password- secret key itselfserviceAccount.name- name of the service account for MinIOpersistence.enabled- persistence enabling flagpersistence.size- size of storage per each podingress- ingress settingsdefaultBuckets- default buckets created after release installation (comma-separated list of strings)
For more configuration values follow this link.
In Waldur Helm values.yaml you need to setup:
minio.accessKey- should be same asaccessKeyinminio.values.yamlminio.secretKey- should be same assecretKeyinminio.values.yamlminio.bucketName- should be same as a value fromdefaultBucketslist inminio-values.yamlminio.endpoint- access URL tominiostorage (minioservice host and port). See this doc for details.
PostgreSQL backup configuration
There are the following jobs for backups management:
-
CronJob for backups creation (running by a schedule
postgresBackup.schedule) -
CronJob for backups rotation (running by a schedule
postgresBackup.rotationSchedule)
Backup configuration values (postgresBackup prefix):
-
enabled- boolean flag for enabling/disabling backups -
schedule- cron-like schedule for backups -
rotationSchedule- cron-like schedule for backups rotation -
maxNumber- maximum number of backups to store -
image- Docker image containingpotgresandminio(client) binaries (opennode/postgres-minio by default)
Backups restoration
To restore backups you need to connect to the restoration pod. The major prerequisite for this is stopping the Waldur backend pods to avoid errors. NB: During restoration process, the site will be unavailable. For this, please execute the following lines in the Kubernetes node:
1 2 3 4 5 6 | |
This will give you access to a terminal of a restoration pod. In this shell, please, execute the command:
1 | |
This will print the recent 5 backups available for restoration. Example:
1 2 3 4 5 6 7 8 9 10 11 | |
As you can see, the backup name contains the date and time when it was created in YYYY-mm-dd-HH-MM format. You can freely choose the one you need.
1 2 3 4 5 6 7 8 9 10 | |
Restoration from external backup
If you want to use a pre-created backup from an external system, copy the backup file:
- Copy the backup file to your local machine
-
Copy the file to pod
1 2
export RESTORATION_POD_NAME=$(kubectl get pods --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | grep restore) kubectl cp <BACKUP_FILE> $RESTORATION_POD_NAME:/tmp/backup.sql.gz -
Connect to pod's terminal
1kubectl exec -it $RESTORATION_POD_NAME -- bash -
Apply the backup
1 2 3 4 5 6 7
gzip -d /tmp/backup.sql.gz # Be careful: the next lines have potentially danger operations psql -d postgres -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'waldur' AND pid <> pg_backend_pid();" psql -d postgres -c 'DROP DATABASE waldur;' createdb waldur psql -f /tmp/backup.sql rm /tmp/backup.sql
PostgreSQL HA chart configuration
bitnami/postgresql-ha is used as a highly available database for Waldur.
Standalone installation
Add bitnami repo to helm:
1 | |
Install postgresql-ha release:
1 2 | |
NB: the value postgresqlha.enabled for waldur release must be true.
Chart configuration
You can change default PostgreSQL config with
the following variables in values.yaml (postgresql-ha-values.yaml file):
postgresql.database- name of a database. NB: must matchpostgresqlha.postgresql.databasevalue inwaldur/values.yamlpostgresql.username- name of a database user. NB: must matchpostgresqlha.postgresql.usernamevalue inwaldur/values.yamlpostgresql.password- password of a database userpostgresql.replicaCount- number of db replicaspostgresql.repmgrPassword- password ofrepmgruserpersistence.size- size of a database (for each replica)pgpool.image.tag- tag ofPgpoolimage. Possible tags for default image can be found herepostgresql.image.tag- tag ofPostgreSQLimage. Possible tags for default image can be found here
More information related to possible values here.
Dependency installation
Waldur Helm chart supports PostgreSQL HA installation as a dependency.
For this, set postgresqlha.enabled to true and update related settings in postgresqlha section in waldur/values.yaml
NB: the value postgresql.enabled and externalDB.enabled must be false.
Prior Waldur installation, update chart dependencies:
1 | |
PostgreSQL chart configuration (without HA support)
bitnami/postgresql chart is used as a database for Waldur.
Standalone installation
Add bitnami repo to helm:
1 | |
Install postgresql release:
1 | |
NB: the values postgresql.enabled and postgresqlha.enabled must be false.
Chart configuration
You can change default PostgreSQL config with the following variables in postgresql-values.yaml:
auth.database- name of a database. NB: must matchpostgresql.databasevalue inwaldur/values.yamlauth.username- name of a database user. NB: must matchpostgresql.usernamevalue inwaldur/values.yamlauth.password- password of a database userprimary.persistence.size- size of a databaseimage.tag- tag ofPostgreSQLimage. Possible tags for default image can be found hereimage.registry- registry ofPostgreSQLimage.
More information related to possible values here.
Dependency installation
Waldur Helm chart supports PostgreSQL installation as a dependency.
For this, set postgresql.enabled to true and update related settings in postgresql section in waldur/values.yaml
NB: the value postgresqlha.enabled and externalDB.enabled must be false.
Prior Waldur installation, update chart dependencies:
1 | |
Readonly user configuration
In order to enable /api/query/ endpoint please make sure that read-only user is configured.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Proxy setup for Waldur components
You can setup the proxy environment variables https_proxy, http_proxy and no_proxy for Waldur component containers.
For this, please set values for the proxy.httpsProxy, proxy.httpProxy and proxy.noProxy variables in waldur/values.yaml file.
Example:
1 2 3 4 | |
Note: you can set variables separately, i.e. leave some of them blank:
1 2 3 4 | |
In the previous example, the https_proxy env variable won't be present in the containers.
RabbitMQ configuration
For rabbitmq installation, bitnami/rabbitmq is used.
Installation
Add bitnami repo to helm:
1 | |
Install rabbitmq-ha release:
1 | |
Configuration
You can change rabbitmq config with the following variables in rmq-values.yaml:
replicaCount- number RMQ instancespersistence.enabled- enable/disable persistencepersistence.size- size for singe PVpersistence.storageClass- storage class for PVauth.username- username for RMQ userauth.password- password for RMQ user
For more config values, see this section
In values.yaml file, you need to setup the following vars (rabbitmq prefix):
auth.username- should be same asauth.usernamein thermq-values.yamlfileauth.password- should be same asauth.passwordin thermq-values.yamlfilehost- rabbitmq service hostname (See this doc for details)customManagementPort- custom port for rabbitmq management interfacecustomAMQPPort- custom port for AMQP access
Additional Protocol Support
The chart supports additional messaging protocols beyond AMQP:
- MQTT (port 1883) - for IoT device communication
- STOMP (port 61613) - for simple text-based messaging
- WebSocket variants (ports 15674, 15675) - for browser-based connections
These protocols are enabled through the extraPlugins configuration:
1 | |
Additional container and service ports are automatically configured for these protocols.
SAML2 configuration
To configure SAML2 for Waldur:
- Enable SAML2 support in
values.yaml: addSAML2string intowaldur.authMethodslist - Set source directory in
waldur.saml2.dir - Place necessary files in the directory
with the following manner (
.is the source directory root):sp.crt->./sp.pem->./saml2.conf.py->./
Service endpoints
For communication inside a cluster, pods use services. Usually, that needs to define internal endpoints with service URL format.
NB: It is important to set up namespace part correctly.
If not, requests can come to unexpected service, which will cause errors.
Endpoint format
Fully qualified endpoint format is:
1 | |
Where
<service-name>.<namespace>.svc.<cluster>- hostname of service<service-port>- port of service
For example:
- hostname is
elasticsearch-master.elastic.svc.cluster.local - service port is
9200 - final URL is
http://elasticsearch-master.elastic.svc.cluster.local:9200
If pods run in the same namespace and cluster, it can be simplified to:
1 | |
For example: http://elasticsearch-master:9200
TLS configuration instructions
To enable tls globally please set ingress.tls.enabled=true in values.yaml
Let’s Encrypt setup
If you want to configure letsencrypt certification, you need to:
- Set
ingress.tls.source="letsEncrypt"invalues.yaml - Create namespace for cert-manager
1 | |
- Add repository and update repos list
1 2 | |
- Install cert-manager release
1 2 3 4 5 | |
- After that,
waldurrelease is ready for installation.
Your own certificate
In case, when you want to use own certificate, you need to:
- Set
ingress.tls.source="secret"invalues.yaml - Set
ingress.tls.secretsDirvariable to directory with yourtls.crtandtls.keyfiles. By default it is set totls - After that,
waldurrelease is ready for installation
White-labeling instructions
To setup white-labeling, you can define next variables in waldur/values.yaml file:
shortPageTitle- custom prefix for page titlemodePageTitle- custom page titleloginLogoPath- path to custom.pngimage file for login page (should be inwaldur/chart directory)sidebarLogoPath- path to custom.pngimage file for sidebar header (should be inwaldur/chart directory)sidebarLogoDarkPath- path to custom.pngimage file for sidebar header in dark mode (should be inwaldur/chart directory)poweredByLogoPath- path to custom.pngimage file for "powered by" part of login page (should be inwaldur/chart directory)faviconPath- path to custom favicon.pngimage filetosHtmlPath- path to custom terms of service file (tos.html)privacyHtmlPath- path to custom privacy statement file (privacy.html)brandColor- Hex color definition is used in HomePort landing page for login button.heroImagePath- Relative path to image rendered at hero section of HomePort landing page.heroLinkLabel- Label for link in hero section of HomePort landing page. It can be lead to support site or blog post.heroLinkUrl- Link URL in hero section of HomePort landing page.siteDescription- text at hero section of HomePort landing page.
NB:
- the
*Pathvalues take place only if respectful*Urlvalues are not specified. If both types are defined, the precedence is taken byURL(*Url) for all cases. - all of imported files must be within chart root directory
Alternatively, TOS and PP files content can be provided as multiline values in tosHtml and privacyHtml options respectfully.
If defined, they take precedence over the aforementioned ones.
Ended: Docs
Ended: Helm
Ended: Deployment
Identities ↵
LDAP
Waldur allows you to authenticate using identities from a LDAP server.
Prerequisites
- Below it is assumed that LDAP server is provided by FreeIPA. Although LDAP authentication would work with any other LDAP server as well, you may need to customize configuration for Waldur MasterMind.
- Please ensure that Waldur Mastermind API server has access to the LDAP server. By default LDAP server listens on TCP and UDP port 389, or on port 636 for LDAPS (LDAP over SSL). If this port is filtered out by firewall, you wouldn't be able to authenticate via LDAP.
- You should know LDAP server URI, for example, FreeIPA demo server has
ldap://ipa.demo1.freeipa.org. - You should know username and password of LDAP admin user. For example, FreeIPA demo server uses username=admin and password=Secret123.
Add LDAP configuration to Waldur Mastermind configuration
Example configuration is below, please adjust to your specific deployment.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | |
Configuration above is based on LDAP server exposed by FreeIPA. To make it work, there are some things that need to be verified in FreeIPA:
- Ensure that admins and support groups exist in LDAP server. You may do it using FreeIPA admin UI.

- If user is assigned to admins group in LDAP, he becomes staff in Waldur. If user is assigned to support group in LDAP, he becomes support user in Waldur. For example, consider the manager user which belong to both groups:
Field mapping
displayName attribute in LDAP is mapped to full_name attribute in Waldur.
mail field in LDAP is mapped to email attribute in Waldur.
Consider for example, the following user attributes in LDAP:
Here's how it is mapped in Waldur:
And here's how it is displayed when user initially logs into Waldur via HomePort:
MyAccessID
Waldur supports integration with MyAccessID identity service.
The MyAccessID Identity and Access Management Service is provided by GEANT with the purpose of offering a common Identity Layer for Infrastructure Service Domains (ISDs).
The AAI proxy of MyAccessID connects Identity Providers from eduGAIN, specific IdPs which are delivered in context of ISDs such as HPC IdPs, eIDAS eIDs and potentially other IdPs as requested by ISDs.
MyAccessID delivers the Discovery Service used during the user authentication process for users to choose their IdP. It enables the user to register an account in the Account Registry, to link different identities and it guarantees the uniqueness and persistence of the user identifier towards connected ISDs.
To enable MyAccessID, please register a new client for Waldur deployment and set configuration settings for MyAccessID. Check configuration guide for available settings.
Fetch user data using CUID of a user
You can use CUID of user in order to fetch user permissions from MyAccessID registry. This document describes how to perform it via Waldur shell.
TARA
Waldur supports integration with TARA authentication service.
To enable it, please register a new client for Waldur deployment and set configuration settings for TARA. Check configuration guide for available settings.
eduGAIN
Overview
eduGAIN is a global federation of identity and service providers, based technically on SAML2.
In order to allow eduGAIN users to access Waldur, there are two steps:
- Waldur deployment must be registered as a service provider in eduGAIN federation.
- Waldur must get a list of identities that are trusted for authentication.
Tip
SAML is a complicated and fragile technology. GEANT provides an alternative to direct integration of SAML - eduTEAMS, which exposes an OpenID Connect protocol for service providers.
Waldur relies on djangosaml2 for the heavylifting of SAML processing, so for fine tuning configuration, contact corresponding project documentation.
Registering Waldur as Service Provider
Add SAML configuration to Waldur Mastermind configuration
Example configuration is below, please adjust to your specific deployment. Once applied, service metadata will be
visible at Waldur deployment URL: https://waldur.example.com/api-auth/saml2/metadata/. That data needs to be
propagated to the federation operator for inclusion into the federation.
Tip
Managed ansible simplifies configuration of the eduGAIN integration and should be a preferred method for all supported deployments.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | |
Example of generated metadata
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | |
Adding trusted identity providers
In order to configure Waldur to use SAML2 authentication you should specify identity provider metadata.
- If metadata XML is stored locally, it is cached in the local SQL database. Usually metadata XML file is big, so it
is necessary to use local cache in this case. But you should ensure that metadata XML file is refreshed via cron
on a regular basis. A management command
waldur sync_saml2_providersperforms refreshing of the data. - If metadata XML is accessed remotely, it is not cached in SQL database. Therefore you should ensure that metadata
XML is small enough. In this case you should download metadata signing certificate locally and specify its path in
Waldur configuration. The certificate is used to retrieve the metadata securely. Please note that security
certificates are updated regularly, therefore you should update configuration whenever certificate is updated.
By convention, both metadata signing certificate and metadata itself are downloaded to
/etc/waldur/saml2in Waldur Mastermind instances.
References
TAAT configuration
TaaT certificates can be downloaded from: http://taat.edu.ee/main/dokumendid/sertifikaadid/.
Metadata URL for test hub is https://reos.taat.edu.ee/saml2/idp/metadata.php and for production hub is https://sarvik.taat.edu.ee/saml2/idp/metadata.php. Note, the certificate must correspond to the hub you want connect to.
Using Janus
Janus is a self-service for managing Service Provider records.
- Create a new connection:
New connection ID must be equal to the base_url in saml.conf.py + /apu-auth/saml2/metadata/
- Choose SAML 2.0 SP for connection type.
- Click Create button
- In connection tab select or create ARP. Fields that ARP include must be in the saml_attribute_mapping.
- Navigate to the Import metadata tab and paste same URL as in the first step. Click on the Get metadata.
- Navigate to the Validate tab and check whether all the tests pass. You can fix metadata in Metadata tab.
HAKA configuration
Production hub metadata is described at https://wiki.eduuni.fi/display/CSCHAKA/Haka+metadata.
Test hub metadata is described at https://wiki.eduuni.fi/display/CSCHAKA/Verifying+Haka+compatibility.
FEDI configuration
Production hub metadata is described at https://fedi.litnet.lt/en/metadata.
Discovery is supported: https://discovery.litnet.lt/simplesaml/module.php/discopower/disco.php.
eduTEAMS
Waldur supports integration with eduTEAMS identity service.
To enable it, please register a new client for Waldur deployment and set configuration settings for eduTEAMS. Check configuration guide for available settings.
Fetch user data using CUID of a user
You can use CUID of user in order to fetch user permissions. This file describes how to perform it, you only need to provide CUID as a username.
FreeIPA
Tip
For integrating FreeIPA as source of identities, please see LDAP. This module is about synchronising users from Waldur to FreeIPA
For situations when you would like to provide access to services based on the Linux usernames, e.g. for SLURM deployments, you might want to map users from Waldur (e.g. created through eduGAIN) to an external FreeIPA service.
To do that, you need to enable module and define settings for accessing FreeIPA REST APIs. See Waldur configuration guide for the list of supported FreeIPA settings.
At the moment at most one deployment of FreeIPA per Waldur is supported.
Keycloak
Waldur supports integration with Keycloak identity manager.
Below is a guide to configure Keycloak OpenID Connect client and Waldur intergration.
Configuring Keycloak
Instructions below are aimed to provide a basic configuration of Keycloak, please refer to Keycloak documentation for full details.
- Login to admin interface of Keycloak.
- Create a new realm (or use existing)

- Open a menu with a list of clients.

- Add a new client for Waldur by clicking on
Create clientbutton.
- Make sure that
Client authenticationis enabled.
- Change client's Valid redirect URIs to "*".

- Copy secret code from
Credentialstab.
- You can find the settings required for configuration of Waldur under the following path on your Keycloak deployment (change
test-waldurto the realm that you are using):/realms/test-waldur/.well-known/openid-configuration
Configuring Waldur
-
Make sure
SOCIAL_SIGNUPis added to the list of available authentication methods:1WALDUR_CORE['AUTHENTICATION_METHODS'] = ["LOCAL_SIGNIN", "SOCIAL_SIGNUP"]
3. Open Keycloak identity provider details by clicking on Edit menu of Keycloak dropdown menu
4. Copy Client ID, Client secret and Discovery URL. For extra security, enable SSL, PKCE and post-logout redirect.
Summary
| Name | Protocol | Description |
|---|---|---|
| eduGAIN | SAML | Federation of research and educational providers supported by Geant |
| eduTEAMS | OIDC | Group management service integrated with research and educational providers provided by Geant |
| FreeIPA | REST API | Support for synchronisation of Waldur identities with open-source Identity Management server |
| Keycloak | OIDC | Open-source identity management server |
| LDAP | LDAP/S | Support of identity servers over LDAP protocol |
| TARA | OIDC | Estonian State Autentication service |
Ended: Identities
Mastermind configuration ↵
CLI guide
axes_list_attempts
List access attempts
axes_reset
Reset all access attempts and lockouts
axes_reset_failure_logs
Reset access failure log records older than given days.
1 2 3 4 | |
axes_reset_ip
Reset all access attempts and lockouts for given IP addresses
1 2 3 4 | |
axes_reset_ip_username
Reset all access attempts and lockouts for a given IP address and username
1 2 3 4 5 | |
axes_reset_logs
Reset access log records older than given days.
1 2 3 4 | |
axes_reset_username
Reset all access attempts and lockouts for given usernames
1 2 3 4 | |
clean_settings_cache
Clean API configuration settings cache.
cleanup_stale_event_types
Cleanup stale event types in all hooks.
copy_category
Copy structure of categories for the Marketplace
1 2 3 4 5 | |
create_provider
Create a service provider with a linked customer and load categories
1 2 3 4 5 | |
createstaffuser
Create a user with a specified username and password. User will be created as staff.
1 2 3 4 5 6 | |
drop_leftover_openstack_projects
Drop leftover projects from remote OpenStack deployment. Leftovers are resources marked as terminated in Waldur but still present in the remote OpenStack. Such inconsistency may be caused by split brain problem in the distributed database.
1 2 3 4 5 6 7 8 9 | |
drop_stale_permissions
Delete permissions from DB which are no longer in code.
dump_constance_settings
Dump all settings stored in django-constance to a YAML file. This includes all settings, even those with file/image values.
Usage: waldur dump_constance_settings output.yaml
The output format is compatible with override_constance_settings command.
For image/file fields, you can optionally export the actual files to a directory using --export-media option.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
dumpusers
Dumps information about users, their organizations and projects.
1 2 3 4 5 6 | |
export_ami_catalog
Export catalog of Amazon images.
export_auth_social
Export OIDC auth configuration as YAML format
1 2 3 4 5 6 | |
export_model_metadata
Collect and export metadata about Django models
export_offering
Export an offering from Waldur. Export data includes JSON file with an offering data and a thumbnail. Names of this files include offering ID.
1 2 3 4 5 6 7 | |
export_roles
Export roles configuration to YAML format.
This command exports all system roles or optionally only specific roles. The output format is compatible with the import_roles command.
Usage: waldur export_roles roles.yaml waldur export_roles roles.yaml --system-only waldur export_roles roles.yaml --include-inactive
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
generate_mermaid
Generate a Mermaid Class Diagram for specified Django apps and models.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
import_ami_catalog
Import catalog of Amazon images.
1 2 3 4 5 6 7 | |
import_auth_social
Import OIDC auth configuration in YAML format. The example of auth.yaml:
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 | |
import_azure_image
Import Azure image
1 2 3 4 5 6 7 | |
import_marketplace_orders
Create marketplace order for each resource if it does not yet exist.
import_offering
Import or update an offering in Waldur. You must define offering for updating or category and customer for creating.
1 2 3 4 5 6 7 8 9 10 11 | |
import_reppu_usages
Import component usages from Reppu for a specified year and month.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
import_roles
Import roles configuration in YAML format
1 2 3 4 | |
import_tenant_quotas
Import OpenStack tenant quotas to marketplace.
1 2 3 4 5 | |
load_categories
Loads a categories for the Marketplace
1 2 3 4 | |
load_features
Import features in JSON format
1 2 3 4 5 6 7 8 | |
load_notifications
Import notifications to DB
1 2 3 4 | |
load_user_agreements
Imports privacy policy and terms of service into DB
1 2 3 4 5 6 7 8 | |
move_project
Move Waldur project to a different organization.
1 2 3 4 5 6 7 8 9 10 | |
move_resource
Move a marketplace resource to a different project.
1 2 3 4 5 6 7 | |
organization_access_subnets
Dumps information about organization access subnets, merging adjacent or overlapping networks.
1 2 3 4 5 6 7 | |
override_constance_settings
Override settings stored in django-constance. The example of .yaml file:
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 | |
override_roles
Override roles configuration in YAML format. The example of roles-override.yaml:
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 | |
override_templates
Override templates
1 2 3 4 5 6 7 8 9 | |
pgmigrate
Load data with disabled signals.
1 2 3 4 | |
print_events_enums
Prints all event types as typescript enums.
print_features_description
Prints all Waldur feature description as typescript code.
print_features_docs
Prints all Waldur feature toggles in markdown format.
print_features_enums
Prints all Waldur feature toggles as typescript enums.
print_mixins
Prints all mixin classes in the codebase in markdown format.
1 2 3 4 5 | |
print_notifications
Prints Mastermind notifications with a description and templates
print_permissions_description
Prints all Waldur permissions description as typescript code.
print_registered_handlers
Prints all registered signal handlers in markdown format.
1 2 3 4 5 6 7 8 | |
print_scheduled_jobs
Prints all scheduled background jobs in markdown format.
1 2 3 4 5 | |
print_settings_description
Prints all Waldur feature description as typescript code.
pull_openstack_volume_metadata
Pull OpenStack volumes metadata to marketplace.
1 2 3 4 5 | |
pull_support_priorities
Pull priorities from support backend.
pull_support_users
Pull users from support backend.
push_tenant_quotas
Push OpenStack tenant quotas from marketplace to backend.
1 2 3 4 5 | |
rebuild_billing
Create or update price estimates based on invoices.
removestalect
Remove Django event log records with stale content types.
set_constance_image
A custom command to set Constance image configs with CLI
1 2 3 4 5 | |
status
Check status of Waldur MasterMind configured services
switching_backend_server
Backend data update if a server was switched.
sync_saml2_providers
Synchronize SAML2 identity providers.
Configuration options
Static options
WALDUR_AUTH_SAML2 plugin
Default value:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
ALLOW_TO_SELECT_IDENTITY_PROVIDER
Type: bool
ATTRIBUTE_MAP_DIR
Type: str
Directory with attribute mapping
AUTHN_REQUESTS_SIGNED
Type: str
Indicates if the authentication requests sent should be signed by default
CATEGORIES
Type: list
Links to the entity categories
CERT_FILE
Type: str
PEM formatted certificate chain file
DEBUG
Type: bool
Set to True to output debugging information
DEFAULT_BINDING
Type: str
DESCRIPTION
Type: str
Service provider description (required by CoC)
DIGEST_ALGORITHM
Type: Optional[str]
Identifies the Message Digest algorithm URL according to the XML Signature specification (SHA1 is used by default)
DISCOVERY_SERVICE_LABEL
Type: Optional[str]
DISCOVERY_SERVICE_URL
Type: Optional[str]
DISPLAY_NAME
Type: str
Service provider display name (required by CoC)
ENABLE_SINGLE_LOGOUT
Type: bool
IDENTITY_PROVIDER_LABEL
Type: Optional[str]
IDENTITY_PROVIDER_URL
Type: Optional[str]
IDP_METADATA_LOCAL
Type: list
IdPs metadata XML files stored locally
IDP_METADATA_REMOTE
Type: list
IdPs metadata XML files stored remotely
KEY_FILE
Type: str
PEM formatted certificate key file
LOGOUT_REQUESTS_SIGNED
Type: str
Indicates if the entity will sign the logout requests
LOG_FILE
Type: str
Empty to disable logging SAML2-related stuff to file
LOG_LEVEL
Type: str
Log level for SAML2
MANAGEMENT_URL
Type: str
The endpoint for user details management.
NAME
Type: str
Name used for assigning the registration method to the user
NAMEID_FORMAT
Type: Optional[str]
Identified NameID format to use. None means default, empty string ("") disables addition of entity
OPTIONAL_ATTRIBUTES
Type: list
SAML attributes that may be useful to have but not required
ORGANIZATION
Type: dict
Organization responsible for the service (you can set multilanguage information here)
PRIVACY_STATEMENT_URL
Type: str
URL with privacy statement (required by CoC)
REGISTRATION_AUTHORITY
Type: str
Registration authority required by mdpi
REGISTRATION_INSTANT
Type: str
Registration instant time required by mdpi
REGISTRATION_POLICY
Type: str
Registration policy required by mdpi
REQUIRED_ATTRIBUTES
Type: list
SAML attributes that are required to identify a user
SAML_ATTRIBUTE_MAPPING
Type: dict
Mapping between SAML attributes and User fields
SIGNATURE_ALGORITHM
Type: Optional[str]
Identifies the Signature algorithm URL according to the XML Signature specification (SHA1 is used by default)
XMLSEC_BINARY
Type: str
Full path to the xmlsec1 binary program
WALDUR_AUTH_SOCIAL plugin
Default value:
1 2 3 4 5 6 7 8 9 10 | |
ENABLE_EDUTEAMS_SYNC
Type: bool
Enable eduTEAMS synchronization with remote Waldur.
REMOTE_EDUTEAMS_CLIENT_ID
Type: str
ID of application used for OAuth authentication.
REMOTE_EDUTEAMS_ENABLED
Type: bool
Enable remote eduTEAMS extension.
REMOTE_EDUTEAMS_REFRESH_TOKEN
Type: str
Token is used to authenticate against user info endpoint.
REMOTE_EDUTEAMS_SECRET
Type: str
Application secret key.
REMOTE_EDUTEAMS_SSH_API_PASSWORD
Type: str
Password for SSH API URL
REMOTE_EDUTEAMS_SSH_API_URL
Type: str
API URL SSH keys
REMOTE_EDUTEAMS_SSH_API_USERNAME
Type: str
Username for SSH API URL
REMOTE_EDUTEAMS_TOKEN_URL
Type: str
The token endpoint is used to obtain tokens.
REMOTE_EDUTEAMS_USERINFO_URL
Type: str
It allows to get user data based on userid aka CUID.
WALDUR_CORE plugin
Default value:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | |
ATTACHMENT_LINK_MAX_AGE
Type: timedelta
Max age of secure token for media download.
AUTHENTICATION_METHODS
Type: List[str]
List of enabled authentication methods.
BACKEND_FIELDS_EDITABLE
Type: bool
Allows to control /admin writable fields. If this flag is disabled it is impossible to edit any field that corresponds to backend value via /admin. Such restriction allows to save information from corruption.
CREATE_DEFAULT_PROJECT_ON_ORGANIZATION_CREATION
Type: bool
Enables generation of the first project on organization creation.
EMAIL_CHANGE_MAX_AGE
Type: timedelta
Max age of change email request.
ENABLE_ACCOUNTING_START_DATE
Type: bool
Allows to enable accounting for organizations using value of accounting_start_date field.
EXTENSIONS_AUTOREGISTER
Type: bool
Defines whether extensions should be automatically registered.
EXTERNAL_LINKS
Type: List[ExternalLink]
Render external links in dropdown in header. Each item should be object with label and url fields. For example: {"label": "Helpdesk", "url": "https://example.com/"}
GROUP_INVITATION_LIFETIME
Type: timedelta
Defines for how long group invitation remains valid.
HOMEPORT_SENTRY_DSN
Type: Optional[str]
Sentry Data Source Name for Waldur HomePort project.
HOMEPORT_SENTRY_ENVIRONMENT
Type: str
Sentry environment name for Waldur Homeport.
HOMEPORT_SENTRY_TRACES_SAMPLE_RATE
Type: float
Percentage of transactions sent to Sentry for tracing.
HTTP_CHUNK_SIZE
Type: int
Chunk size for resource fetching from backend API. It is needed in order to avoid too long HTTP request error.
INVITATIONS_ENABLED
Type: bool
Allows to disable invitations feature.
INVITATION_CIVIL_NUMBER_LABEL
Type: str
Custom label for civil number field in invitation creation dialog.
INVITATION_CREATE_MISSING_USER
Type: bool
Allow to create FreeIPA user using details specified in invitation if user does not exist yet.
INVITATION_LIFETIME
Type: timedelta
Defines for how long invitation remains valid.
INVITATION_MAX_AGE
Type: Optional[timedelta]
Max age of invitation token. It is used in approve and reject actions.
INVITATION_USE_WEBHOOKS
Type: bool
Allow sending of webhooks instead of sending of emails.
INVITATION_WEBHOOK_TOKEN_CLIENT_ID
Type: str
Client ID to get access token from Keycloak.
INVITATION_WEBHOOK_TOKEN_SECRET
Type: str
Client secret to get access token from Keycloak.
INVITATION_WEBHOOK_TOKEN_URL
Type: str
Keycloak URL to get access token.
INVITATION_WEBHOOK_URL
Type: str
Webhook URL for sending invitations.
LOCAL_IDP_LABEL
Type: str
The label of local auth.
LOCAL_IDP_MANAGEMENT_URL
Type: str
The URL for management of local user details.
LOCAL_IDP_NAME
Type: str
The name of local auth.
LOCAL_IDP_PROTECTED_FIELDS
Type: List[str]
The list of protected fields for local IdP.
LOGGING_REPORT_DIRECTORY
Type: str
Directory where log files are located.
LOGGING_REPORT_INTERVAL
Type: timedelta
Files older that specified interval are filtered out.
MASTERMIND_URL
Type: str
It is used for rendering callback URL in MasterMind.
MATOMO_SITE_ID
Type: Optional[int]
Site ID is used by Matomo analytics application.
MATOMO_URL_BASE
Type: Optional[str]
URL base is used by Matomo analytics application.
NATIVE_NAME_ENABLED
Type: bool
Allows to render native name field in customer and user forms.
NOTIFICATIONS_PROFILE_CHANGES
Type: dict
Configure notifications about profile changes of organization owners.
NOTIFICATION_SUBJECT
Type: str
It is used as a subject of email emitted by event logging hook.
OECD_FOS_2007_CODE_MANDATORY
Type: bool
Field oecd_fos_2007_code must be required for project.
ONLY_STAFF_CAN_INVITE_USERS
Type: bool
Allow to limit invitation management to staff only.
PROTECT_USER_DETAILS_FOR_REGISTRATION_METHODS
Type: List[str]
List of authentication methods for which a manual update of user details is not allowed.
REQUEST_HEADER_IMPERSONATED_USER_UUID
Type: str
The request header, which contains the user UUID of the user to be impersonated.
RESPONSE_HEADER_IMPERSONATOR_UUID
Type: str
The response header, which contains the UUID of the user who requested the impersonation.
SELLER_COUNTRY_CODE
Type: Optional[str]
Specifies seller legal or effective country of registration or residence as an ISO 3166-1 alpha-2 country code. It is used for computing VAT charge rate.
SERVICE_ACCOUNT_TOKEN_CLIENT_ID
Type: str
Client ID to get access token for service account.
SERVICE_ACCOUNT_TOKEN_SECRET
Type: str
Client secret to get access for service account.
SERVICE_ACCOUNT_TOKEN_URL
Type: str
Webhook URL for getting token for further service account management.
SERVICE_ACCOUNT_URL
Type: str
Webhook URL for service account management.
SERVICE_ACCOUNT_USE_API
Type: bool
Send service account creation and deletion requests to API.
SUBNET_BLACKLIST
Type: List[str]
List of IP ranges that are blocked for the SDK client.
SUPPORT_PORTAL_URL
Type: str
Support portal URL is rendered as a shortcut on dashboard
TOKEN_LIFETIME
Type: timedelta
Defines for how long user token should remain valid if there was no action from user.
TRANSLATION_DOMAIN
Type: str
Identifier of translation domain applied to current deployment.
USER_MANDATORY_FIELDS
Type: List[str]
List of user profile attributes that would be required for filling in HomePort. Note that backend will not be affected. If a mandatory field is missing in profile, a profile edit view will be forced upon user on any HomePort logged in action. Possible values are: description, email, full_name, job_title, organization, phone_number
USER_REGISTRATION_HIDDEN_FIELDS
Type: List[str]
List of user profile attributes that would be concealed on registration form in HomePort. Possible values are: job_title, registration_method, phone_number
USE_ATOMIC_TRANSACTION
Type: bool
Wrap action views in atomic transaction.
VALIDATE_INVITATION_EMAIL
Type: bool
Ensure that invitation and user emails match.
WALDUR_HPC plugin
Default value:
1 2 3 4 5 6 7 8 9 10 11 | |
ENABLED
Type: bool
Enable HPC-specific hooks in Waldur deployment
EXTERNAL_AFFILIATIONS
Type: List[str]
List of user affiliations (eduPersonScopedAffiliation fields) that define if the user belongs to external organization.
EXTERNAL_CUSTOMER_UUID
Type: str
UUID of a Waldur organization (aka customer) where new external users would be added
EXTERNAL_EMAIL_PATTERNS
Type: List[str]
List of user email patterns (as regex) that define if the user belongs to external organization.
EXTERNAL_LIMITS
Type: dict
Overrided default values for SLURM offering to be created for users belonging to external organization.
INTERNAL_AFFILIATIONS
Type: List[str]
List of user affiliations (eduPersonScopedAffiliation fields) that define if the user belongs to internal organization.
INTERNAL_CUSTOMER_UUID
Type: str
UUID of a Waldur organization (aka customer) where new internal users would be added
INTERNAL_EMAIL_PATTERNS
Type: List[str]
List of user email patterns (as regex) that define if the user belongs to internal organization.
INTERNAL_LIMITS
Type: dict
Overrided default values for SLURM offering to be created for users belonging to internal organization.
OFFERING_UUID
Type: str
UUID of a Waldur SLURM offering, which will be used for creating allocations for users
PLAN_UUID
Type: str
UUID of a Waldur SLURM offering plan, which will be used for creating allocations for users
WALDUR_OPENSTACK plugin
Default value:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
ALLOW_CUSTOMER_USERS_OPENSTACK_CONSOLE_ACCESS
Type: bool
If true, customer users would be offered actions for accessing OpenStack console
ALLOW_DIRECT_EXTERNAL_NETWORK_CONNECTION
Type: bool
If true, allow connecting of instances directly to external networks
DEFAULT_BLACKLISTED_USERNAMES
Type: list
Usernames that cannot be created by Waldur in OpenStack
DEFAULT_SECURITY_GROUPS
Type: tuple
Default security groups and rules created in each of the provisioned OpenStack tenants
MAX_CONCURRENT_PROVISION
Type: dict
Maximum parallel executions of provisioning operations for OpenStack resources
REQUIRE_AVAILABILITY_ZONE
Type: bool
If true, specification of availability zone during provisioning will become mandatory
SUBNET
Type: dict
Default allocation pool for auto-created internal network
TENANT_CREDENTIALS_VISIBLE
Type: bool
If true, generated credentials of a tenant are exposed to project users
WALDUR_PID plugin
Default value:
1 2 3 4 5 6 | |
DATACITE
Type: dict
Settings for integration of Waldur with Datacite PID service. Collection DOI is used to aggregate generated DOIs.
WALDUR_SLURM plugin
Default value:
1 2 3 4 5 6 | |
ALLOCATION_PREFIX
Type: str
Prefix for SLURM account name corresponding to Waldur allocation
CUSTOMER_PREFIX
Type: str
Prefix for SLURM account name corresponding to Waldur organization.
DEFAULT_LIMITS
Type: dict
Default limits of account that are set when SLURM account is provisioned.
ENABLED
Type: bool
Enable support for SLURM plugin in a deployment
PRIVATE_KEY_PATH
Type: str
Path to private key file used as SSH identity file for accessing SLURM master.
PROJECT_PREFIX
Type: str
Prefix for SLURM account name corresponding to Waldur project.
Other variables
DEFAULT_FROM_EMAIL
Type: str, default value: webmaster@localhost
Default email address to use for automated correspondence from Waldur.
DEFAULT_REPLY_TO_EMAIL
Type: str
Default email address to use for email replies.
EMAIL_HOOK_FROM_EMAIL
Type: str
Alternative email address to use for email hooks.
IMPORT_EXPORT_USE_TRANSACTIONS
Type: bool, default value: True
Controls if resource importing should use database transactions. Using transactions makes imports safer as a failure during import won’t import only part of the data set.
IPSTACK_ACCESS_KEY
Type: Optional[str]
Unique authentication key used to gain access to the ipstack API.
LANGUAGES
Type: List[tuple[str, str]], default value: (('en', 'English'), ('et', 'Eesti'))
The list is a list of two-tuples in the format (language code, language name) – for example, ('ja', 'Japanese').
LANGUAGE_CODE
Type: str, default value: en
Represents the name of a default language.
VERIFY_WEBHOOK_REQUESTS
Type: bool, default value: True
When webook is processed, requests verifies SSL certificates for HTTPS requests, just like a web browser.
Dynamic options
Branding
SITE_NAME
Type: str
Default value: Waldur
Human-friendly name of the Waldur deployment.
SHORT_PAGE_TITLE
Type: str
Default value: Waldur
It is used as prefix for page title.
FULL_PAGE_TITLE
Type: str
Default value: Waldur | Cloud Service Management
It is used as default page title if it's not specified explicitly.
SITE_DESCRIPTION
Type: str
Default value: Your single pane of control for managing projects, teams and resources in a self-service manner.
Description of the Waldur deployment.
HOMEPORT_URL
Type: str
Default value: https://example.com/
It is used for rendering callback URL in HomePort
RANCHER_USERNAME_INPUT_LABEL
Type: str
Default value: Username
Label for the username field in Rancher external user resource access management.
Marketplace Branding
SITE_ADDRESS
Type: str
It is used in marketplace order header.
SITE_EMAIL
Type: str
It is used in marketplace order header and UI footer.
SITE_PHONE
Type: str
It is used in marketplace order header and UI footer.
CURRENCY_NAME
Type: str
Default value: EUR
It is used in marketplace order details and invoices for currency formatting.
MARKETPLACE_LANDING_PAGE
Type: str
Default value: Marketplace
Marketplace landing page title.
COUNTRIES
Type: country_list_field
Default value: ['AL', 'AT', 'BA', 'BE', 'BG', 'CH', 'CY', 'CZ', 'DE', 'DK', 'EE', 'ES', 'EU', 'FI', 'FR', 'GB', 'GE', 'GR', 'HR', 'HU', 'IE', 'IS', 'IT', 'LT', 'LU', 'LV', 'MC', 'MK', 'MT', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'SE', 'SI', 'SK', 'UA']
It is used in organization creation dialog in order to limit country choices to predefined set.
Marketplace
THUMBNAIL_SIZE
Type: str
Default value: 120x120
Size of the thumbnail to generate when screenshot is uploaded for an offering.
ANONYMOUS_USER_CAN_VIEW_OFFERINGS
Type: bool
Default value: True
Allow anonymous users to see shared offerings in active, paused and archived states
ANONYMOUS_USER_CAN_VIEW_PLANS
Type: bool
Default value: True
Allow anonymous users to see plans
NOTIFY_STAFF_ABOUT_APPROVALS
Type: bool
If true, users with staff role are notified when request for order approval is generated
NOTIFY_ABOUT_RESOURCE_CHANGE
Type: bool
Default value: True
If true, notify users about resource changes from Marketplace perspective. Can generate duplicate events if plugins also log
DISABLE_SENDING_NOTIFICATIONS_ABOUT_RESOURCE_UPDATE
Type: bool
Default value: True
Disable only resource update events.
ENABLE_STALE_RESOURCE_NOTIFICATIONS
Type: bool
Enable reminders to owners about resources of shared offerings that have not generated any cost for the last 3 months.
ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND
Type: bool
Enable mock returns for the service account service
ENFORCE_USER_CONSENT_FOR_OFFERINGS
Type: bool
If True, users must have active consent to access offerings that have active Terms of Service.
Telemetry
TELEMETRY_URL
Type: str
Default value: https://telemetry.waldur.com/
URL for sending telemetry data.
TELEMETRY_VERSION
Type: int
Default value: 1
Telemetry service version.
Custom Scripts
SCRIPT_RUN_MODE
Type: str
Default value: docker
Type of jobs deployment. Valid values: "docker" for simple docker deployment, "k8s" for Kubernetes-based one
DOCKER_CLIENT
Type: dict_field
Default value: {'base_url': 'unix:///var/run/docker.sock'}
Options for docker client. See also: https://docker-py.readthedocs.io/en/stable/client.html#docker.client.DockerClient
DOCKER_RUN_OPTIONS
Type: dict_field
Default value: {'mem_limit': '512m'}
Options for docker runtime. See also: https://docker-py.readthedocs.io/en/stable/containers.html#docker.models.containers.ContainerCollection.run
DOCKER_SCRIPT_DIR
Type: str
Path to folder on executor machine where to create temporary submission scripts. If None, uses OS-dependent location. OS X users, see https://github.com/docker/for-mac/issues/1532
DOCKER_REMOVE_CONTAINER
Type: bool
Default value: True
Remove Docker container after script execution
DOCKER_IMAGES
Type: dict_field
Default value: {'python': {'image': 'python:3.11-alpine', 'command': 'python'}, 'shell': {'image': 'alpine:3', 'command': 'sh'}, 'ansible': {'image': 'alpine/ansible:2.18.6', 'command': 'ansible-playbook'}}
Key is command to execute script, value is a dictionary of image name and command.
DOCKER_VOLUME_NAME
Type: str
Default value: waldur-docker-compose_waldur_script_launchzone
A name of the shared volume to store scripts
K8S_NAMESPACE
Type: str
Default value: default
Kubernetes namespace where jobs will be executed
K8S_CONFIG_PATH
Type: str
Default value: ~/.kube/config
Path to Kubernetes configuration file
K8S_JOB_TIMEOUT
Type: int
Default value: 1800
Timeout for execution of one Kubernetes job in seconds
Notifications
COMMON_FOOTER_TEXT
Type: text_field
Common footer in txt format for all emails.
COMMON_FOOTER_HTML
Type: html_field
Common footer in html format for all emails.
MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES
Type: int
Default value: 60
How many minutes before scheduled maintenance users should be notified.
MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM
Type: list_field
Default value: ['AdminAnnouncement']
How maintenance notifications are delivered. Choices: AdminAnnouncement or BroadcastMessage.
Links
DOCS_URL
Type: url_field
Renders link to docs in header
HERO_LINK_LABEL
Type: str
Label for link in hero section of HomePort landing page. It can be lead to support site or blog post.
HERO_LINK_URL
Type: url_field
Link URL in hero section of HomePort landing page.
SUPPORT_PORTAL_URL
Type: url_field
Link URL to support portal. Rendered as a shortcut on dashboard
Theme
SIDEBAR_STYLE
Type: str
Default value: dark
Style of sidebar. Possible values: dark, light, accent.
BRAND_COLOR
Type: color_field
Default value: #307300
Brand color is used for button background.
DISABLE_DARK_THEME
Type: bool
Toggler to disable dark theme.
Images
SITE_LOGO
Type: image_field
The image used in marketplace order header.
SIDEBAR_LOGO
Type: image_field
The image rendered at the top of sidebar menu in HomePort.
SIDEBAR_LOGO_MOBILE
Type: image_field
The image rendered at the top of mobile sidebar menu in HomePort.
SIDEBAR_LOGO_DARK
Type: image_field
The image rendered at the top of sidebar menu in dark mode.
POWERED_BY_LOGO
Type: image_field
The image rendered at the bottom of login menu in HomePort.
HERO_IMAGE
Type: image_field
The image rendered at hero section of HomePort landing page.
MARKETPLACE_HERO_IMAGE
Type: image_field
The image rendered at hero section of Marketplace landing page. Please, use a wide image (min. 1920×600px) with no text or logos. Keep the center area clean, and choose a darker image for dark mode or a brighter image for light mode.
CALL_MANAGEMENT_HERO_IMAGE
Type: image_field
The image rendered at hero section of Call Management landing page. Please, use a wide image (min. 1920×600px) with no text or logos. Keep the center area clean, and choose a darker image for dark mode or a brighter image for light mode.
LOGIN_LOGO
Type: image_field
A custom .png image file for login page
FAVICON
Type: image_field
A custom favicon .png image file
OFFERING_LOGO_PLACEHOLDER
Type: image_field
Default logo for offering
KEYCLOAK_ICON
Type: image_field
A custom PNG icon for Keycloak login button
Service desk integration settings
WALDUR_SUPPORT_ENABLED
Type: bool
Default value: True
Toggler for support plugin.
WALDUR_SUPPORT_ACTIVE_BACKEND_TYPE
Type: str
Default value: atlassian
Type of support backend. Possible values: atlassian, zammad, smax.
WALDUR_SUPPORT_DISPLAY_REQUEST_TYPE
Type: bool
Default value: True
Toggler for request type displaying
Atlassian settings
ATLASSIAN_API_URL
Type: url_field
Default value: https://example.com/
Atlassian API server URL
ATLASSIAN_USERNAME
Type: str
Default value: USERNAME
Username for access user
ATLASSIAN_PASSWORD
Type: secret_field
Default value: PASSWORD
Password for access user
ATLASSIAN_EMAIL
Type: email_field
Email for access user
ATLASSIAN_TOKEN
Type: secret_field
Token for access user
ATLASSIAN_PROJECT_ID
Type: str
Service desk ID or key
ATLASSIAN_DEFAULT_OFFERING_ISSUE_TYPE
Type: str
Default value: Service Request
Issue type used for request-based item processing.
ATLASSIAN_EXCLUDED_ATTACHMENT_TYPES
Type: str
Comma-separated list of file extenstions not allowed for attachment.
ATLASSIAN_ISSUE_TYPES
Type: str
Default value: Informational, Service Request, Change Request, Incident
Comma-separated list of enabled issue types. First type is the default one.
ATLASSIAN_AFFECTED_RESOURCE_FIELD
Type: str
Affected resource field name
ATLASSIAN_DESCRIPTION_TEMPLATE
Type: str
Template for issue description
ATLASSIAN_SUMMARY_TEMPLATE
Type: str
Template for issue summary
ATLASSIAN_IMPACT_FIELD
Type: str
Default value: Impact
Impact field name
ATLASSIAN_ORGANISATION_FIELD
Type: str
Organisation field name
ATLASSIAN_RESOLUTION_SLA_FIELD
Type: str
Resolution SLA field name
ATLASSIAN_PROJECT_FIELD
Type: str
Project field name
ATLASSIAN_REPORTER_FIELD
Type: str
Default value: Original Reporter
Reporter field name
ATLASSIAN_CALLER_FIELD
Type: str
Default value: Caller
Caller field name
ATLASSIAN_SLA_FIELD
Type: str
Default value: Time to first response
SLA field name
ATLASSIAN_LINKED_ISSUE_TYPE
Type: str
Default value: Relates
Type of linked issue field name
ATLASSIAN_SATISFACTION_FIELD
Type: str
Default value: Customer satisfaction
Customer satisfaction field name
ATLASSIAN_REQUEST_FEEDBACK_FIELD
Type: str
Default value: Request feedback
Request feedback field name
ATLASSIAN_TEMPLATE_FIELD
Type: str
Template field name
ATLASSIAN_CUSTOM_ISSUE_FIELD_MAPPING_ENABLED
Type: bool
Default value: True
Should extra issue field mappings be applied
ATLASSIAN_SHARED_USERNAME
Type: bool
Is Service Desk username the same as in Waldur
ATLASSIAN_VERIFY_SSL
Type: bool
Default value: True
Toggler for SSL verification
ATLASSIAN_USE_OLD_API
Type: bool
Toggler for legacy API usage.
ATLASSIAN_USE_TEENAGE_API
Type: bool
Toggler for teenage API usage.
ATLASSIAN_USE_AUTOMATIC_REQUEST_MAPPING
Type: bool
Default value: True
Toggler for automatic request mapping.
ATLASSIAN_MAP_WALDUR_USERS_TO_SERVICEDESK_AGENTS
Type: bool
Toggler for mapping between waldur user and service desk agents.
ATLASSIAN_STRANGE_SETTING
Type: int
Default value: 1
A constant in the API path, sometimes differs
ATLASSIAN_PULL_PRIORITIES
Type: bool
Default value: True
Toggler for pulling priorities from backend
Zammad settings
ZAMMAD_API_URL
Type: url_field
Zammad API server URL. For example https://localhost:8080/
ZAMMAD_TOKEN
Type: secret_field
Authorization token.
ZAMMAD_GROUP
Type: str
The name of the group to which the ticket will be added. If not specified, the first group will be used.
ZAMMAD_ARTICLE_TYPE
Type: str
Default value: email
Type of a comment. Default is email because it allows support to reply to tickets directly in Zammadhttps://docs.zammad.org/en/latest/api/ticket/articles.html#articles/
ZAMMAD_COMMENT_MARKER
Type: str
Default value: Created by Waldur
Marker for comment. Used for separating comments made via Waldur from natively added comments.
ZAMMAD_COMMENT_PREFIX
Type: str
Default value: User: {name}
Comment prefix with user info.
ZAMMAD_COMMENT_COOLDOWN_DURATION
Type: int
Default value: 5
Time in minutes. Time in minutes while comment deletion is available https://github.com/zammad/zammad/issues/2687/, https://github.com/zammad/zammad/issues/3086/
SMAX settings
SMAX_API_URL
Type: url_field
SMAX API server URL. For example https://localhost:8080/
SMAX_TENANT_ID
Type: str
User tenant ID.
SMAX_LOGIN
Type: str
Authorization login.
SMAX_PASSWORD
Type: secret_field
Authorization password.
SMAX_ORGANISATION_FIELD
Type: str
Organisation field name.
SMAX_PROJECT_FIELD
Type: str
Project field name.
SMAX_AFFECTED_RESOURCE_FIELD
Type: str
Resource field name.
SMAX_REQUESTS_OFFERING
Type: str
Requests offering code for all issues.
SMAX_SECONDS_TO_WAIT
Type: int
Default value: 1
Duration in seconds of delay between pull user attempts.
SMAX_TIMES_TO_PULL
Type: int
Default value: 10
The maximum number of attempts to pull user from backend.
SMAX_CREATION_SOURCE_NAME
Type: str
Creation source name.
SMAX_VERIFY_SSL
Type: bool
Default value: True
Toggler for SSL verification
Proposal settings
PROPOSAL_REVIEW_DURATION
Type: int
Default value: 7
Review duration in days.
Table settings
USER_TABLE_COLUMNS
Type: str
Comma-separated list of columns for users table.
Localization
LANGUAGE_CHOICES
Type: str
Default value: en,et,lt,lv,ru,it,de,da,sv,es,fr,nb,ar,cs
List of enabled languages
User settings
AUTO_APPROVE_USER_TOS
Type: bool
Mark terms of services as approved for new users.
ENABLE_STRICT_CHECK_ACCEPTING_INVITATION
Type: bool
If true, user email in Waldur database and in invitatation must strictly match.
INVITATION_DISABLE_MULTIPLE_ROLES
Type: bool
Do not allow user to grant multiple roles in the same project or organization using invitation.
DEFAULT_IDP
Type: str
Triggers authentication flow at once.
DEACTIVATE_USER_IF_NO_ROLES
Type: bool
Deactivate user if all roles are revoked (except staff/support)
FreeIPA settings
FREEIPA_ENABLED
Type: bool
Enable integration of identity provisioning in configured FreeIPA.
FREEIPA_HOSTNAME
Type: str
Default value: ipa.example.com
Hostname of FreeIPA server.
FREEIPA_USERNAME
Type: str
Default value: admin
Username of FreeIPA user with administrative privileges.
FREEIPA_PASSWORD
Type: secret_field
Default value: secret
Password of FreeIPA user with administrative privileges
FREEIPA_VERIFY_SSL
Type: bool
Default value: True
Validate TLS certificate of FreeIPA web interface / REST API
FREEIPA_USERNAME_PREFIX
Type: str
Default value: waldur_
Prefix to be appended to all usernames created in FreeIPA by Waldur
FREEIPA_GROUPNAME_PREFIX
Type: str
Default value: waldur_
Prefix to be appended to all group names created in FreeIPA by Waldur
FREEIPA_BLACKLISTED_USERNAMES
Type: list_field
Default value: ['root']
List of username that users are not allowed to select
FREEIPA_GROUP_SYNCHRONIZATION_ENABLED
Type: bool
Default value: True
Optionally disable creation of user groups in FreeIPA matching Waldur structure
OIDC auth settings
OIDC_AUTH_URL
Type: str
OIDC authentication endpoint URL.
OIDC_INTROSPECTION_URL
Type: str
OIDC introspection endpoint URL for validating access tokens.
OIDC_CLIENT_ID
Type: str
Client ID for authenticating against the introspection endpoint.
OIDC_CLIENT_SECRET
Type: str
Client secret for authenticating against the introspection endpoint.
OIDC_USER_FIELD
Type: str
Default value: username
Field name from the introspection response to identify the user (e.g., 'username', 'email', 'client_id').
OIDC_CACHE_TIMEOUT
Type: int
Default value: 300
Number of seconds to cache token introspection results.
Features
customer.payments_for_staff_only
Make payments menu visible for staff users only.
customer.show_domain
Allows to hide domain field in organization detail.
customer.show_permission_reviews
Allows to show permission reviews tab and popups.
deployment.enable_cookie_notice
Enable cookie notice in marketplace.
deployment.send_metrics
Send telemetry metrics.
invitations.civil_number_required
Make civil number field mandatory in invitation creation form.
invitations.conceal_civil_number
Conceal civil number in invitation creation dialog.
invitations.show_service_accounts
Show service accounts of the scopes.
marketplace.call_only
Allow marketplace to serve only as aggregator of call info.
marketplace.catalogue_only
Allow marketplace to function as a catalogue only.
marketplace.conceal_prices
Do not render prices in order details.
marketplace.import_resources
Allow to import resources from service provider to project.
marketplace.lexis_links
Enabled LEXIS link integrations for offerings.
marketplace.show_call_management_functionality
Enabled display of call management functionality.
marketplace.show_experimental_ui_components
Enabled display of experimental or mocked components in marketplace.
marketplace.show_resource_end_date
Show resource end date as a non optional column in resources list.
openstack.hide_volume_type_selector
Allow to hide OpenStack volume type selector when instance or volume is provisioned.
openstack.show_migrations
Show OpenStack tenant migrations action and tab
project.estimated_cost
Render estimated cost column in projects list.
project.mandatory_end_date
Make the project end date mandatory.
project.mandatory_start_date
Make the project start date mandatory.
project.oecd_fos_2007_code
Enable OECD code.
project.show_credit_in_create_dialog
Show credit field in project create dialog.
project.show_description_in_create_dialog
Show description field in project create dialog.
project.show_end_date_in_create_dialog
Show end date field in project create dialog.
project.show_image_in_create_dialog
Show image field in project create dialog.
project.show_industry_flag
Show industry flag.
project.show_start_date_in_create_dialog
Show start date field in project create dialog.
project.show_type_in_create_dialog
Show type field in project create dialog.
rancher.apps
Render Rancher apps as a separate tab in resource details page.
rancher.volume_mount_point
Allow to select mount point for data volume when Rancher cluster is provisioned.
slurm.jobs
Render list of SLURM jobs as a separate tab in allocation details page.
support.conceal_change_request
Conceal "Change request" from a selection of issue types for non-staff/non-support users.
support.pricelist
Render marketplace plan components pricelist in support workspace.
support.vm_type_overview
Enable VM type overview in support workspace.
user.disable_user_termination
Disable user termination in user workspace.
user.notifications
Enable email and webhook notifications management in user workspace.
user.preferred_language
Render preferred language column in users list.
user.show_slug
Enable display of slug field in user summary.
user.show_username
Enable display of username field in user tables.
user.ssh_keys
Enable SSH keys management in user workspace.
General Configuration
Outline:
- General Configuration
- Introduction
- Admin dashboard configuration
- Custom templates configuration
- Local time zone configuration
Introduction
Waldur is a Django-based application, so configuration is done by modifying settings.py file.
If you want to configure options related to Django, such as tune caches, database connection, configure custom logging, etc, please refer to Django documentation.
Please consult configuration guide to learn more.
Admin dashboard configuration
An admin dashboard supports custom links on Quick access panel. For instance, a panel below was configured with one additional link to https://waldur.com:
Configuration of custom links is stored under FLUENT_DASHBOARD_QUICK_ACCESS_LINKS settings key and for current example has following structure:
1 2 3 4 5 6 7 8 9 | |
Here is a short description of link parameters:
| Name | Type | Required | Description |
|---|---|---|---|
| description | string | No | Tool tip on the link |
| external | boolean | No | Specifies whether additional icon indicating an external URL has to be added |
| url | URL | Yes | A URL of the link |
| title | string | Yes | A title of the generated link |
| attrs | dict | No | A dictionary of anchor attributes to be added to generated element |
It is also possible to omit optional fields and add links by specifying only a title and a URL to the generated link.
1 2 3 4 | |
Custom templates configuration
To overwrite default templates you should use django-dbtemplates. It allows creation of templates through /admin.
Local time zone configuration
Set TIME_ZONE setting in /etc/waldur/override.conf.py to use local time zone. By default it is set to UTC. See the list of time zones for possible options.
Configuration of the Google Calendar
Overriding notification templates via admin panel
An admin can override(edit the content) the templates of notifications with the following sequence of actions:
-
Go to admin panel (e.g.
http://localhost:8080/admin/) -
Open Templates:
Utilities->Database templates->Templates
- Click on
Add templateon the right side.
-
Enter the path to the template file into the
Nameinput field as shown below.The name should have a
<waldur_application_name>/<event_name>_<postfix>.<extension>format, where<postfix>can be eithermessageorsubject, and<extension>- eithertxtorhtml.You can find a list of all notification templates here
- Scroll down and click on
Save and continue editingand you should have the content of the template loaded automatically
- Edit the
Contentfield as you like andSavethe changes.
Notifications
WALDUR_CORE.STRUCTURE
structure.change_email_request
A notification sent out when an email change is requested. Recipient is the old email address.
Templates
1 | |
1 | |
1 | |
structure.notifications_profile_changes_operator
A notification sent out to notify about profile changes. The recipients are Waldur operators.
Templates
1 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 | |
structure.structure_role_granted
A notification sent out when a role is granted. The recipient is the user who received the role.
Templates
1 | |
1 | |
1 | |
WALDUR_CORE.USERS
users.invitation_approved
A notification sent to notify the user that his invitation has been approved. The recipient is the user who's being invited.
Templates
1 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
users.invitation_created
A notification sent to the user so that he can accept it and receive permissions. The recipient is the user who's being invited.
Templates
1 2 3 4 5 | |
1 2 3 4 5 6 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
users.invitation_expired
A notification sent out to notify the user that his invitation has expired. The recipient is the user who's being invited.
Templates
1 | |
1 2 3 4 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
users.invitation_rejected
A notification sent to notify the user that his invitation has been rejected. The recipient is the user who's being invited.
Templates
1 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
users.invitation_requested
A notification sent to staff users so that they can approve or reject invitation. The recipients are active staff users.
Templates
1 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | |
users.permission_request_submitted
A notification sent out to notify about submitted permission request. The recipients are active staff users or customer owners.
Templates
1 | |
1 2 3 4 5 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
WALDUR_MASTERMIND.BOOKING
booking.notification
A notification sent out to notify about upcoming bookings. The recipients are users who have upcoming bookings.
Templates
1 | |
1 2 3 4 5 6 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
WALDUR_MASTERMIND.INVOICES
invoices.notification
A notification of invoice. The recipients are organization owners.
Templates
1 | |
1 2 3 4 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
invoices.upcoming_ends_notification
A notification about upcoming contract ending. The recipients are organization owners.
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
WALDUR_MASTERMIND.MARKETPLACE
marketplace.marketplace_resource_create_failed
A notification of a failed resource creation
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace.marketplace_resource_create_succeeded
A notification of a successful resource creation
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace.marketplace_resource_terminate_failed
A notification of a failed resource termination
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace.marketplace_resource_terminate_succeeded
A notification of a successful resource termination
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace.marketplace_resource_termination_scheduled
A notification of a scheduled resource termination. The recipients are project administrators and managers
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
marketplace.marketplace_resource_termination_scheduled_staff
A notification of a resource termination. The recipients are project administrators and managers.
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
marketplace.marketplace_resource_update_failed
A notification of failed resource update
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace.marketplace_resource_update_limits_failed
A notification of failed resource limits update
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace.marketplace_resource_update_limits_succeeded
A notification of a successful resource limit update. The recipients are all the users in the project.
Templates
1 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
marketplace.marketplace_resource_update_succeeded
A notification of a successful resource update. The recipients are all the users in the project.
Templates
1 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
marketplace.notification_about_project_ending
A notification about project ending. The recipients are project managers and customer owners.
Templates
1 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
marketplace.notification_about_resource_ending
A notification about resource ending. The recipients are project managers and customer owners.
Templates
1 | |
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
marketplace.notification_about_stale_resources
A notification about stale resources. The recipients are organization owners.
Templates
1 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
marketplace.notification_to_user_that_order_been_rejected
Notification to user whose order been rejected.
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace.notification_usages
A notification about usages. The recipients are organization owners.
Templates
1 | |
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
marketplace.notify_consumer_about_pending_order
A notification for consumer about pending order. The recipients are users that have permissions to approve the order.
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace.notify_provider_about_pending_order
A notification for provider about pending order. The recipients are users that have permissions to approve the order.
Templates
1 | |
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
WALDUR_MASTERMIND.MARKETPLACE_REMOTE
marketplace_remote.notification_about_pending_project_updates
A notification about pending project updates. The recipients are customer owners
Templates
1 | |
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
marketplace_remote.notification_about_project_details_update
A notification about project details update. The recipients the user who requested project details update and the user that reviewed it.
Templates
1 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | |
marketplace_policy.notification_about_project_cost_exceeded_limit
Notification about project cost exceeded limit. The recipients are all customer owners of the project.
Templates
1 | |
1 2 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
WALDUR_MASTERMIND.SUPPORT
support.description
A notification used for issue creation.
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
support.notification_comment_added
Notification about a new comment in the issue. The recipient is issue caller.
Templates
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
1 | |
support.notification_comment_updated
Notification about an update in the issue comment. The recipient is issue caller.
Templates
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
1 | |
support.notification_issue_feedback
Notification about a feedback related to the issue. The recipient is issue caller.
Templates
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
1 | |
support.notification_issue_updated
Notification about an update in the issue. The recipient is issue caller.
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
1 | |
support.summary
A notification used for issue creation.
Templates
1 | |
WALDUR_MASTERMIND.PROPOSAL
proposal.new_proposal_submitted
A notification to the call manager about a new proposal submission.
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
1 | |
proposal.new_review_submitted
A notification to the call manager about a new review submission.
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
1 | |
proposal.proposal_cancelled
A notification to proposal creator about the proposal cancellation.
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
1 | |
proposal.proposal_decision_for_reviewer
A notification to the reviewer about the proposal decision (approved/rejected) which they reviewed.
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
1 | |
proposal.proposal_state_changed
A notification about the proposal state changes (submitted → in review → accepted/rejected).
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | |
1 | |
proposal.requested_offering_decision
A notification to call manager about the decision on requested offering (accepted/rejected).
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
1 | |
proposal.review_assigned
A notification to a reviewer about a new review assignment.
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
1 | |
proposal.review_rejected
A notification to the call managers about a rejected review.
Templates
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
1 | |
Scheduled Background Jobs
This document lists all scheduled background jobs (Celery beat tasks) configured in the system.
| Job Name | Task | Schedule | Description |
|---|---|---|---|
cancel-expired-invitations |
waldur_core.users.cancel_expired_invitations |
1 day | Invitation lifetime must be specified in Waldur Core settings with parameter "INVITATION_LIFETIME". If invitation creation time is less than expiration time, the invitation will set as expired. |
cancel_expired_group_invitations |
waldur_core.users.cancel_expired_group_invitations |
1 day | Invitation lifetime must be specified in Waldur Core settings with parameter "GROUP_INVITATION_LIFETIME". If invitation creation time is less than expiration time, the invitation will set as expired. |
check-expired-permissions |
waldur_core.permissions.check_expired_permissions |
1 day | Task not found in registry |
check-polices |
waldur_mastermind.policy.check_polices |
Cron: * * 1 * * (m/h/dM/MY/d) |
Evaluate all policies across all policy types in the system. |
cleanup-orphaned-answers |
waldur_core.checklist.cleanup_orphaned_answers |
1 day | Task not found in registry |
core-reset-updating-resources |
waldur_core.reset_updating_resources |
10 minutes | Reset resources stuck in UPDATING state when their Celery tasks are completed. |
create-reviews-if-strategy-is-after-proposal |
waldur_mastermind.proposal.create_reviews_if_strategy_is_after_proposal |
1 hour | Create reviews for active rounds with 'after proposal' review strategy. |
create-reviews-if-strategy-is-after-round |
waldur_mastermind.proposal.create_reviews_if_strategy_is_after_round |
1 hour | Create reviews for active rounds with 'after round' review strategy. |
create_customer_permission_reviews |
waldur_core.structure.create_customer_permission_reviews |
1 day | Create customer permission reviews for customers that need periodic review of user permissions. |
expired-reviews-should-be-cancelled |
waldur_mastermind.proposal.expired_reviews_should_be_cancelled |
1 hour | Cancel reviews that have expired. |
mark-offering-backend-as-disconnected-after-timeout |
waldur_mastermind.marketplace_site_agent.mark_offering_backend_as_disconnected_after_timeout |
1 hour | No description available |
mark_resources_as_erred_after_timeout |
waldur_mastermind.marketplace.mark_resources_as_erred_after_timeout |
2 hours | Mark stale orders and their resources as erred if they have been executing for more than 2 hours. |
marketplace-openstack.create-resources-for-lost-instances-and-volumes |
waldur_mastermind.marketplace_openstack.create_resources_for_lost_instances_and_volumes |
6 hours | Create marketplace resources for OpenStack instances and volumes that exist in backend but are missing from marketplace. |
marketplace-openstack.refresh-instance-backend-metadata |
waldur_mastermind.marketplace_openstack.refresh_instance_backend_metadata |
1 day | Refresh metadata for OpenStack instances from backend to ensure marketplace resources have up-to-date information. |
notification_about_project_ending |
waldur_mastermind.marketplace.notification_about_project_ending |
Cron: 0 10 * * * (m/h/dM/MY/d) |
Send notifications about projects ending in 1 day and 7 days. |
notification_about_resource_ending |
waldur_mastermind.marketplace.notification_about_resource_ending |
Cron: 0 10 * * * (m/h/dM/MY/d) |
Send notifications about resources ending in 1 day and 7 days. |
notify_about_stale_resource |
waldur_mastermind.marketplace.notify_about_stale_resource |
Cron: 0 15 5 * * (m/h/dM/MY/d) |
Notify customers about resources that have not generated invoice items in the last 3 months. |
openstack-delete-expired-backups |
openstack.DeleteExpiredBackups |
10 minutes | Delete expired OpenStack backup resources that have reached their retention period. |
openstack-delete-expired-snapshots |
openstack.DeleteExpiredSnapshots |
10 minutes | Delete expired OpenStack snapshot resources that have reached their retention period. |
openstack-tenant-properties-list-pull-task |
openstack.tenant_properties_list_pull_task |
1 day | Pull OpenStack tenant properties like flavors, images, and volume types from backend. |
openstack-tenant-pull-quotas |
openstack.TenantPullQuotas |
12 hours | Pull quota limits and usage information for all OpenStack tenants. |
openstack-tenant-resources-list-pull-task |
openstack.tenant_resources_list_pull_task |
1 hour | Pull OpenStack tenant resources like instances, volumes, and snapshots from backend. |
openstack-tenant-subresources-list-pull-task |
openstack.tenant_subresources_list_pull_task |
2 hours | Pull OpenStack tenant subresources like security groups, networks, subnets, and ports from backend. |
openstack_mark_as_erred_old_tenants_in_deleting_state |
openstack.mark_as_erred_old_tenants_in_deleting_state |
1 day | Mark OpenStack tenants as erred if they have been in deleting state for more than 1 day. |
openstack_mark_stuck_updating_tenants_as_erred |
openstack.mark_stuck_updating_tenants_as_erred |
1 hour | No description available |
process-pending-project-invitations |
waldur_core.users.process_pending_project_invitations |
2 hours | Process project invitations for projects that have become active. |
process_pending_project_orders |
waldur_mastermind.marketplace.process_pending_project_orders |
2 hours | Process orders for projects that have become active. |
proposals-for-ended-rounds-should-be-cancelled |
waldur_mastermind.proposal.proposals_for_ended_rounds_should_be_cancelled |
1 hour | Cancel proposals for rounds that have ended. |
pull-priorities |
waldur_mastermind.support.pull_priorities |
1 day | Pull priority levels from the active support backend. |
pull-service-properties |
waldur_core.structure.ServicePropertiesListPullTask |
1 day | Pull service properties from all active service backends. |
pull-service-resources |
waldur_core.structure.ServiceResourcesListPullTask |
Hourly (at minute 0) | Pull resources from all active service backends. |
pull-support-users |
waldur_mastermind.support.pull_support_users |
6 hours | Pull support users from the active support backend. |
remove_deleted_robot_accounts |
waldur_mastermind.marketplace.remove_deleted_robot_accounts |
1 day | Remove robot accounts that are in DELETED state. This task runs daily to clean up robot accounts that have been marked for deletion. |
restrict_offering_users_for_revoked_consents |
waldur_mastermind.marketplace.restrict_offering_users_for_revoked_consents |
1 day | Task not found in registry |
send-messages-about-pending-orders |
waldur_mastermind.marketplace_site_agent.send_messages_about_pending_orders |
1 hour | Send a message about pending orders created 1 hour ago to MQTT |
send-monthly-invoicing-reports-about-customers |
invoices.send_monthly_invoicing_reports_about_customers |
Cron: 0 0 2 * * (m/h/dM/MY/d) |
Send monthly invoicing reports via email to configured recipients. |
send-notifications-about-upcoming-ends |
invoices.send_notifications_about_upcoming_ends |
1 day | Send notifications about upcoming end dates of fixed payment profiles. |
send-reminder-for-pending-invitations |
waldur_core.users.send_reminder_for_pending_invitations |
1 day | Send reminder emails for pending invitations that are about to expire. |
send-scheduled-broadcast-notifications |
waldur_mastermind.notifications.send_scheduled_broadcast_messages |
12 hours | Send broadcast messages that have been scheduled for delivery. |
send_telemetry |
waldur_mastermind.marketplace.send_metrics |
1 day | Send anonymous usage metrics and telemetry data to the Waldur team. |
structure-set-erred-stuck-resources |
waldur_core.structure.SetErredStuckResources |
1 hour | This task marks all resources which have been provisioning for more than 3 hours as erred. |
sync-resources |
waldur_mastermind.marketplace_site_agent.sync_resources |
10 minutes | Sync resources that haven't been updated in the last hour. Processes only resources that users have subscribed to receive updates for. |
sync_request_types |
waldur_mastermind.support.sync_request_types |
1 day | Synchronize request types from the active support backend. |
terminate_expired_resources |
waldur_mastermind.marketplace.terminate_expired_resources |
Cron: 20 1 * * * (m/h/dM/MY/d) |
Terminate marketplace resources that have reached their end date. |
terminate_resources_if_project_end_date_has_been_reached |
waldur_mastermind.marketplace.terminate_resources_if_project_end_date_has_been_reached |
Cron: 40 1 * * * (m/h/dM/MY/d) |
Terminate resources when their project has reached its end date. |
terminate_resources_in_state_erred_without_backend_id_and_failed_terminate_order |
waldur_mastermind.marketplace.terminate_resources_in_state_erred_without_backend_id_and_failed_terminate_order |
1 day | Clean up erred Slurm resources that failed both creation and termination. |
update-custom-quotas |
waldur_core.quotas.update_custom_quotas |
1 hour | Task not found in registry |
update-invoices-total-cost |
invoices.update_invoices_total_cost |
1 day | Update cached total cost for current month invoices. |
update-standard-quotas |
waldur_core.quotas.update_standard_quotas |
1 day | Task not found in registry |
valimo-auth-cleanup-auth-results |
waldur_auth_valimo.cleanup_auth_results |
1 hour | Clean up Valimo authentication results older than 7 days. |
waldur-create-invoices |
invoices.create_monthly_invoices |
Monthly (1st day of month at midnight) | - For every customer change state of the invoices for previous months from "pending" to "billed" and freeze their items. - Create new invoice for every customer in current month if not created yet. |
waldur-create-offering-users-for-site-agent-offerings |
waldur_mastermind.marketplace_site_agent.sync_offering_users |
1 day | No description available |
waldur-firecrest-pull-jobs |
waldur_firecrest.pull_jobs |
1 hour | Pull SLURM jobs from Firecrest API for all offering users with valid OAuth tokens. |
waldur-freeipa-sync-groups |
waldur_freeipa.sync_groups |
10 minutes | This task is used by Celery beat in order to periodically schedule FreeIPA group synchronization. |
waldur-freeipa-sync-names |
waldur_freeipa.sync_names |
1 day | Synchronize user names between Waldur and FreeIPA backend. |
waldur-marketplace-calculate-usage |
waldur_mastermind.marketplace.calculate_usage_for_current_month |
1 hour | Calculate marketplace resource usage for the current month across all customers and projects. |
waldur-marketplace-script-pull-resources |
waldur_marketplace_script.pull_resources |
1 hour | Pull resources from marketplace script offerings by executing configured pull scripts. |
waldur-marketplace-script-remove-old-dry-runs |
waldur_marketplace_script.remove_old_dry_runs |
1 day | Remove old dry run records that are older than one day. |
waldur-mastermind-reject-past-bookings |
waldur_mastermind.booking.reject_past_bookings |
Cron: 0 10 * * * (m/h/dM/MY/d) |
Reject booking resources that have start times in the past. |
waldur-mastermind-send-notifications-about-upcoming-bookings |
waldur_mastermind.booking.send_notifications_about_upcoming_bookings |
Cron: 0 9 * * * (m/h/dM/MY/d) |
Send email notifications to users about their upcoming bookings. |
waldur-pid-update-all-referrables |
waldur_pid.update_all_referrables |
1 day | Update DataCite DOI information for all referrable objects with existing DOIs. |
waldur-pull-remote-eduteams-ssh-keys |
waldur_auth_social.pull_remote_eduteams_ssh_keys |
3 minutes | Task not found in registry |
waldur-pull-remote-eduteams-users |
waldur_auth_social.pull_remote_eduteams_users |
5 minutes | Task not found in registry |
waldur-rancher-delete-leftover-keycloak-groups |
waldur_rancher.delete_leftover_keycloak_groups |
1 hour | Delete remote Keycloak groups with no linked groups in Waldur |
waldur-rancher-delete-leftover-keycloak-memberships |
waldur_rancher.delete_leftover_keycloak_memberships |
1 hour | Delete remote Keycloak user memberships in groups with no linked instances in Waldur |
waldur-rancher-sync-keycloak-users |
waldur_rancher.sync_keycloak_users |
15 minutes | Synchronize Keycloak users with pending group memberships in Rancher. |
waldur-rancher-sync-rancher-group-bindings |
waldur_rancher.sync_rancher_group_bindings |
1 hour | Sync group bindings in Rancher with the groups in Waldur. |
waldur-rancher-sync-rancher-roles |
waldur_rancher.sync_rancher_roles |
1 hour | Synchronize Rancher roles with local role templates for clusters and projects. |
waldur-rancher-update-clusters-nodes |
waldur_rancher.pull_all_clusters_nodes |
1 day | Pull node information for all Rancher clusters and update their states. |
waldur-remote-notify-about-pending-project-update-requests |
waldur_mastermind.marketplace_remote.notify_about_pending_project_update_requests |
7 days | Notify about pending project update requests. This task sends email notifications to project owners about pending project update requests that have been waiting for more than a week. Runs weekly via celery beat. |
waldur-remote-offerings-sync |
waldur_mastermind.marketplace_remote.remote_offerings_sync |
1 day | Synchronize remote offerings based on RemoteSynchronisation configurations. This task processes active remote synchronization configurations, running synchronization for each configured remote marketplace. Runs daily via celery beat. |
waldur-remote-pull-erred-orders |
waldur_mastermind.marketplace_remote.pull_erred_orders |
1 day | Pull and synchronize erred remote marketplace orders. This task specifically handles erred local orders that may have been resolved in remote Waldur instances. It synchronizes UPDATE and TERMINATE order states and adjusts local resource states accordingly. Runs daily via celery beat. |
waldur-remote-pull-invoices |
waldur_mastermind.marketplace_remote.pull_invoices |
1 hour | Pull and synchronize remote marketplace resource invoice data. This task synchronizes invoice items for marketplace resources from remote Waldur instances, including current and previous month data. Runs every 60 minutes via celery beat. |
waldur-remote-pull-maintenance-announcements |
waldur_mastermind.marketplace_remote.pull_maintenance_announcements |
1 hour | Pull and synchronize remote maintenance announcements. This task synchronizes maintenance announcements from remote Waldur instances, Runs every 60 minutes via celery beat. |
waldur-remote-pull-offering-users |
waldur_mastermind.marketplace_remote.pull_offering_users |
1 hour | Pull and synchronize remote marketplace offering users. This task synchronizes user associations with marketplace offerings from remote Waldur instances, ensuring local user mappings are up to date. Runs every 60 minutes via celery beat. |
waldur-remote-pull-offerings |
waldur_mastermind.marketplace_remote.pull_offerings |
1 hour | Pull and synchronize remote marketplace offerings. This task synchronizes offerings from remote Waldur instances, updating local offering data including components, plans, and access endpoints. Runs every 60 minutes via celery beat. |
waldur-remote-pull-orders |
waldur_mastermind.marketplace_remote.pull_orders |
1 hour | Pull and synchronize remote marketplace orders. This task synchronizes order states from remote Waldur instances, updating local order states and associated resource backend IDs. Only processes non-terminal orders. Runs every 60 minutes via celery beat. |
waldur-remote-pull-resources |
waldur_mastermind.marketplace_remote.pull_resources |
1 hour | Pull and synchronize remote marketplace resources. This task synchronizes resource data from remote Waldur instances, updating local resource states and importing remote orders when needed. Runs every 60 minutes via celery beat. |
waldur-remote-pull-robot-accounts |
waldur_mastermind.marketplace_remote.pull_robot_accounts |
1 hour | Pull and synchronize remote marketplace resource robot accounts. This task synchronizes robot account data for marketplace resources from remote Waldur instances, including account types, usernames, and keys. Runs every 60 minutes via celery beat. |
waldur-remote-pull-usage |
waldur_mastermind.marketplace_remote.pull_usage |
1 hour | Pull and synchronize remote marketplace resource usage data. This task synchronizes component usage data from remote Waldur instances, including both regular usage and user-specific usage metrics. Pulls usage data from the last 4 months. Runs every 60 minutes via celery beat. |
waldur-remote-push-project-data |
waldur_mastermind.marketplace_remote.push_remote_project_data |
1 day | Push project data to remote Waldur instances. This task pushes local project data (name, description, end date, etc.) to remote Waldur instances for projects that have marketplace resources. Runs daily via celery beat. |
waldur-remote-sync-remote-project-permissions |
waldur_mastermind.marketplace_remote.sync_remote_project_permissions |
6 hours | Synchronize project permissions with remote Waldur instances. This task ensures that project permissions are synchronized between local and remote Waldur instances when eduTEAMS sync is enabled. It creates remote projects if needed and manages user role assignments. Runs every 6 hours via celery beat. |
waldur-sync-daily-quotas |
analytics.sync_daily_quotas |
1 day | Task not found in registry |
waldur-update-all-pid |
waldur_pid.update_all_pid |
1 day | Update all PID (Persistent Identifier) information for referrable objects with DataCite DOIs. |
waldur_mastermind.marketplace_rancher.sync_managed_rancher_invoice_items |
waldur_mastermind.marketplace_rancher.sync_managed_rancher_invoice_items |
1 hour | No description available |
Message templates
waldur_core.structure
notifications_profile_changes_operator_subject.txt (waldur_core.structure)
1 | |
notifications_profile_changes.html (waldur_core.structure)
1 2 3 4 5 | |
change_email_request_subject.txt (waldur_core.structure)
1 | |
notifications_profile_changes_operator_message.html (waldur_core.structure)
1 2 3 4 5 6 7 8 9 10 | |
structure_role_granted_message.txt (waldur_core.structure)
1 | |
structure_role_granted_subject.txt (waldur_core.structure)
1 | |
change_email_request_message.html (waldur_core.structure)
1 | |
change_email_request_message.txt (waldur_core.structure)
1 | |
notifications_profile_changes_operator_message.txt (waldur_core.structure)
1 2 3 4 5 6 7 8 9 10 | |
structure_role_granted_message.html (waldur_core.structure)
1 | |
waldur_core.users
invitation_approved_subject.txt (waldur_core.users)
1 | |
invitation_created_message.html (waldur_core.users)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
permission_request_submitted_message.html (waldur_core.users)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
invitation_approved_message.txt (waldur_core.users)
1 2 3 4 5 6 7 8 9 10 11 | |
invitation_created_message.txt (waldur_core.users)
1 2 3 4 5 6 | |
invitation_expired_message.html (waldur_core.users)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
invitation_approved_message.html (waldur_core.users)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
invitation_expired_subject.txt (waldur_core.users)
1 | |
invitation_expired_message.txt (waldur_core.users)
1 2 3 4 | |
invitation_rejected_message.txt (waldur_core.users)
1 2 3 4 5 6 7 8 9 | |
invitation_rejected_subject.txt (waldur_core.users)
1 | |
invitation_created_subject.txt (waldur_core.users)
1 2 3 4 5 | |
permission_request_submitted_subject.txt (waldur_core.users)
1 | |
invitation_requested_message.txt (waldur_core.users)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
invitation_rejected_message.html (waldur_core.users)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
permission_request_submitted_message.txt (waldur_core.users)
1 2 3 4 5 | |
invitation_requested_message.html (waldur_core.users)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | |
invitation_requested_subject.txt (waldur_core.users)
1 | |
waldur_core.logging
email.html (waldur_core.logging)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
waldur_mastermind.booking
notification_message.txt (waldur_mastermind.booking)
1 2 3 4 5 6 | |
notification_message.html (waldur_mastermind.booking)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
notification_subject.txt (waldur_mastermind.booking)
1 | |
waldur_mastermind.invoices
monthly_invoicing_reports.html (waldur_mastermind.invoices)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | |
report_body.txt (waldur_mastermind.invoices)
1 | |
invoice.html (waldur_mastermind.invoices)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | |
notification_message.txt (waldur_mastermind.invoices)
1 2 3 4 | |
upcoming_ends_notification_message.txt (waldur_mastermind.invoices)
1 2 3 | |
upcoming_ends_notification_subject.txt (waldur_mastermind.invoices)
1 | |
report_subject.txt (waldur_mastermind.invoices)
1 | |
notification_message.html (waldur_mastermind.invoices)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
upcoming_ends_notification_message.html (waldur_mastermind.invoices)
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
notification_subject.txt (waldur_mastermind.invoices)
1 | |
waldur_mastermind.marketplace
notification_about_project_ending_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_update_limits_succeeded_message.txt (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
marketplace_resource_update_limits_succeeded_subject.txt (waldur_mastermind.marketplace)
1 | |
notification_about_stale_resources_message.txt (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 | |
marketplace_plan_template.txt (waldur_mastermind.marketplace)
1 2 3 | |
notification_usages_message.txt (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 | |
notify_consumer_about_pending_order_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_termination_scheduled_staff_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
marketplace_resource_update_succeeded_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
marketplace_resource_update_failed_subject.txt (waldur_mastermind.marketplace)
1 | |
notify_provider_about_pending_order_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace_resource_terminate_failed_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_update_succeeded_message.txt (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
notification_to_user_that_order_been_rejected_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_update_failed_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
notification_about_stale_resources_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
marketplace_resource_create_failed_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
notify_consumer_about_pending_order_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
marketplace_resource_create_succeeded_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace_resource_update_limits_failed_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace_resource_update_limits_succeeded_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
marketplace_resource_update_failed_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
notification_about_resource_ending_message.txt (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 | |
notification_about_project_ending_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
marketplace_resource_create_failed_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_update_limits_failed_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_terminate_failed_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
notification_usages_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
marketplace_resource_terminate_succeeded_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace_resource_termination_scheduled_staff_subject.txt (waldur_mastermind.marketplace)
1 | |
notification_about_stale_resources_subject.txt (waldur_mastermind.marketplace)
1 | |
notify_provider_about_pending_order_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_terminate_succeeded_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_termination_scheduled_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
notification_about_resource_ending_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
notification_about_project_ending_message.txt (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
notification_to_user_that_order_been_rejected_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
notification_about_resource_ending_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_update_succeeded_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_update_limits_failed_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
marketplace_resource_termination_scheduled_subject.txt (waldur_mastermind.marketplace)
1 | |
notify_consumer_about_pending_order_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace_resource_terminate_failed_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
marketplace_resource_termination_scheduled_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
notification_to_user_that_order_been_rejected_message.html (waldur_mastermind.marketplace)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
marketplace_resource_create_failed_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
marketplace_resource_termination_scheduled_staff_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
marketplace_resource_create_succeeded_subject.txt (waldur_mastermind.marketplace)
1 | |
marketplace_resource_terminate_succeeded_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
notify_provider_about_pending_order_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
marketplace_resource_create_succeeded_message.txt (waldur_mastermind.marketplace)
1 2 3 | |
notification_usages_subject.txt (waldur_mastermind.marketplace)
1 | |
waldur_mastermind.marketplace_remote
notification_about_pending_project_updates_message.txt (waldur_mastermind.marketplace_remote)
1 2 3 4 5 6 7 8 | |
notification_about_pending_project_updates_subject.txt (waldur_mastermind.marketplace_remote)
1 | |
notification_about_project_details_update_message.txt (waldur_mastermind.marketplace_remote)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
notification_about_project_details_update_message.html (waldur_mastermind.marketplace_remote)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | |
notification_about_pending_project_updates_message.html (waldur_mastermind.marketplace_remote)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
notification_about_project_details_update_subject.txt (waldur_mastermind.marketplace_remote)
1 | |
waldur_mastermind.marketplace_support
create_project_membership_update_issue.txt (waldur_mastermind.marketplace_support)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
terminate_resource_template.txt (waldur_mastermind.marketplace_support)
1 2 3 | |
update_resource_template.txt (waldur_mastermind.marketplace_support)
1 2 3 | |
create_resource_template.txt (waldur_mastermind.marketplace_support)
1 2 3 4 5 6 7 8 9 | |
update_limits_template.txt (waldur_mastermind.marketplace_support)
1 2 3 4 | |
waldur_mastermind.proposal
review_rejected_subject.txt (waldur_mastermind.proposal)
1 | |
proposal_decision_for_reviewer_message.txt (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
proposal_state_changed_message.txt (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | |
new_review_submitted_message.html (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
new_proposal_submitted_message.html (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
proposal_state_changed_subject.txt (waldur_mastermind.proposal)
1 | |
proposal_decision_for_reviewer_subject.txt (waldur_mastermind.proposal)
1 | |
proposal_cancelled_subject.txt (waldur_mastermind.proposal)
1 | |
new_review_submitted_message.txt (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
requested_offering_decision_message.txt (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
review_assigned_subject.txt (waldur_mastermind.proposal)
1 | |
review_rejected_message.html (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
review_assigned_message.txt (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
requested_offering_decision_message.html (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
new_proposal_submitted_subject.txt (waldur_mastermind.proposal)
1 | |
proposal_cancelled_message.html (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
new_proposal_submitted_message.txt (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
review_rejected_message.txt (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
proposal_state_changed_message.html (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | |
new_review_submitted_subject.txt (waldur_mastermind.proposal)
1 | |
requested_offering_decision_subject.txt (waldur_mastermind.proposal)
1 | |
proposal_decision_for_reviewer_message.html (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
review_assigned_message.html (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
proposal_cancelled_message.txt (waldur_mastermind.proposal)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
waldur_mastermind.support
notification_comment_updated.txt (waldur_mastermind.support)
1 2 3 | |
notification_issue_feedback.txt (waldur_mastermind.support)
1 2 3 4 5 6 7 8 9 | |
description.txt (waldur_mastermind.support)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
summary.txt (waldur_mastermind.support)
1 | |
notification_issue_updated_subject.txt (waldur_mastermind.support)
1 | |
notification_comment_added.html (waldur_mastermind.support)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
notification_issue_updated.html (waldur_mastermind.support)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
notification_comment_added.txt (waldur_mastermind.support)
1 2 3 | |
notification_issue_feedback_subject.txt (waldur_mastermind.support)
1 | |
notification_issue_feedback.html (waldur_mastermind.support)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
notification_comment_added_subject.txt (waldur_mastermind.support)
1 | |
notification_issue_updated.txt (waldur_mastermind.support)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
notification_comment_updated.html (waldur_mastermind.support)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
notification_comment_updated_subject.txt (waldur_mastermind.support)
1 | |
Ended: Mastermind configuration
Providers ↵
Azure
Warning
Documentation is in progress. Plugin development is in progress.
Setting up Tenant
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-create-new-tenant
Setting up a Client
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app
Add permissions
Make sure that client is able to perform operations on the different resources.
Collecting Azure credentials for Waldur
You need to provide following Azure credentials to Waldur: subscription ID, tenant ID, client ID and client secret.
Get Subscription ID
- Login into your Azure account.
- Select Subscriptions in the left sidebar.
- Select whichever subscription is needed.
- Click on Overview.
- Copy the Subscription ID.
Get Tenant ID
- Login into your Azure account.
- Select Azure Active Directory in the left sidebar.
- Click Properties.
- Copy the Directory ID.
Get Client ID
- Login into your Azure account.
- Select Azure Active Directory in the left sidebar.
- Click Enterprise applications.
- Click All applications.
- Select the application which you have created.
- Click Properties.
- Copy the Application ID.
Get Client secret
- Login into your Azure account.
- Select Azure Active Directory in the left sidebar.
- Click App registrations.
- Select the application which you have created.
- Click on All settings.
- Click on Keys.
- Type Key description and select the Duration.
- Click save.
- Copy and store the key value. You won’t be able to retrieve it after you leave this page.
Custom scripts
Custom scripts is a type of plugin that allows defining custom scripts that are executed
at different lifecycle events of the resource. The scripts are executed in one time containers.
Depending on the deployment type, it can be either a docker container for docker-compose-based, or
Kubernetes Jobs for Helm-based deployments.
The following lifecycle events are supported:
- Creation;
- Update - change of plans or limits;
- Termination;
- Regular updates - executed once per hour, aka pull script.
Script output format
It is possible to control certain aspects of resource management with outputs of the custom scripts. Below we list currently supported conventions and their impact.
Creation script
You can set the the backend_id of the created resource by passing a single string as the last line of the output.
1 2 3 4 5 | |
If you want to save additional metadata, then last line of output should consist of 2 space separated strings:
- ID of the created resource that will be saved as backend_id;
- Base64 encoded metadata object.
1 2 3 4 5 6 7 | |
Regular updates script
The script for regular updates allows to update usage information as well as provide updates of reporting. In all cases the last line should include a base64-encoded string containing a dictionary with keywords:
- "usages" for usage reporting;
- "report" for updating resource report.
Examples of Python-based scripts are:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Example scripts
Each of the scripts below require access to remote Waldur instance. Credentials for this passed as environment variables to the scripts with keys:
WALDUR_API_URL- URL of remote Waldur API including/api/path, example:http://localhost/api/WALDUR_API_TOKEN- token for a remote user with permissions of service provider owner
Script for resource creation
In the remote Waldur site, customer and offering should be pre-created for successful resource creation. Please, add the necessary variables to the local offering's environment:
REMOTE_CUSTOMER_NAME- name of the pre-created customer in the remote WaldurREMOTE_OFFERING_UUID- UUID of the remote offering for creation of the remote resourcePROJECT_NAME- name of the remote project to be createdPI_EMAILS- optional comma-separated list of emails receiving invitations to the project after creation of the remote resourceREMOTE_PROJECT_CREDIT_AMOUNT- optional amount of credit applied to the remote project
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | |
Script for usage pull
This script periodically pulls usage data of the remote resource and saves it locally.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | |
Script for resource termination
This script terminates the remote resource.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | |
MOAB
MOAB is a scheduling engine for HPC centers from Adaptive Computing.
Waldur implementation of support for MOAB is done via the Waldur site agent.
OpenStack (Tenant)
Requirements for OpenStack (Tenant)
OpenStack versions tested:
- Queens
- Rocky
- Stein
- Train
- Ussuri
- Victoria
- Wallaby
- Xena
- Yoga
- Zed
- Antelope
In order to integrate an OpenStack-based cloud as a shared provider, the following data is required:
- URL of Keystone's public endpoint (v3).
- Access to public interfaces of Keystone, Nova, Cinder, Neutron and Glance should be opened to Waldur MasterMind server.
- Admin credentials (username/password) as well as domain name (in case non-default domain is used).
- External network UUID - the network will be by default connected to all created OpenStack Projects (Tenants).
Advanced settings
It's possible to override some settings for OpenStack in MasterMind admin interface. To do that, please go to Waldur MasterMind Admin interface with a staff account.
Go to Structure → Shared provider settings and select the one you want to update.
Define specific customisation options. To add an option select append on item block under the object tree. Most typical are:
- external_network_id – external network to connect to when creating a VPC from this provider.
- access_url - a URL to access OpenStack Horizon dashboard from a public network. Typically a reverse proxy URL in production deployments.
- flavor_exclude_regex - flavors matching this regex expression will not be pulled from the backend.
- dns_nameservers - default value for new subnets DNS name servers. Should be defined as list.
- create_ha_routers - create highly available Neutron routers when creating Tenants.
Support for Organization specific OpenStack networks
You can provide specific external network for all OpenStack Tenants created by Organiztion by providing external network UUIDs in Organization configuration in Waldur Mastermind admin portal.
Remote Offering
Warning
Documentation is in progress. Plugin development is in progress.
Introduction
It is possible to import into a Waldur offerings from a remote Waldur.
Pre-requisites
- An organization in the remote Waldur, which will contain requests and projects from the local Waldur.
- Account with owner role that will be used for integration.
- Access to APIs of remote Waldur.
High level process
- In local Waldur, make sure that you have a service provider organization available.
- Click on "Import offering".
- Input remote Waldur API and authentication token.
- Select the remote organization and offering to be imported.
- Review and activate the offering.
eduTEAMS account SYNC
In case both local and remote Waldurs are relying on a common set of identities from eduTEAMS, it is possible to configure synchronisation of the identities as well, i.e. when a resource is provisioned in a remote Waldur, local accounts from organization and project are pushed and mapped to the remote project.
Note
For this to work, remote Waldur must be integrated with eduTEAMS registry and integration user must have
identity_manager role.
Remote offering actions
Remote offering actions are available in the integration section of the offering edit page.
SLURM provider
SLURM plugin enables sharing of access to a SLURM cluster. SLURM is a scheduling system used typically for managing High-performance clusters. Waldur allows to share access by creating Slurm accounts and managing permission rights of users.
Important note
This page describes the legacy marketplace plugin for SLURM. For the new SLURM plugin, we recommend to check this page
Configure Waldur SLURM plugin
By default, Waldur creates a hierarchical account structure in SLURM, where:
- Organization gets an account under a default account, defined when configuring SLURM service offering;
- Each project is created as a an allocation, which is a child of organization's account.
- Each resource created in Waldur (aka SLURM Allocation) gets its own SLURM account with project account as a parent.
These accounts get standard prefixes along with unique values and user provided input. It is possible to customize prefixes in Waldur configuration. Check WALDUR_SLURM variables in Waldur configuration guide.
Add SLURM provider
To add SLURM as a provider to Waldur, you will need the following information:
- SSH host address to a node, from where SLURM commands could be executed.
- Username that has Slurm operator role. Operator is needed as Waldur dynamically creates accounts based on user's choice of FreeIPA account.
- Waldur public key must be added as authorized_key for the operator's username.
- Slurm login node must be configured to authenticate users coming from FreeIPA connected to Waldur.
SLURM auto-provisioning hooks
It is possible to streamline creation of SLURM allocations for new users based on affiliation of a user profile. Configuration settings are described in Waldur configuration guide under WALDUR_HPC settings.
The logic is as follows:
- Once a user is created (e.g. via eduGAIN login), user's affiliation and email are checked to see if user belongs to internal or external organization.
- If so, a project is created for the user in a corresponding organization.
- For users belonging to internal organization, SLURM request is pre-filled and created using account limits of internal organizations.
- For users belonging to external organization, SLURM request is pre-filled only - it would require a manual confirmation from the organization owner of the external organization to be provisioned. Default limits of SLURM apply.
Configure SLURM cluster
Waldur might work out of the box with most of the reasonably modern deployments of SLURM, which have accounting enabled and limits enforced.
Please refer to SLURM documentation for details:
We provide a snapshot of instructions for the convenience of the reader.
Add SLURM cluster
SLURM accounting plugin assumes that at least one cluster is configured. For example:
1 | |
Enforce SLURM accounting limits
In order to enforce limits set on associations and QoS, please modify slurm.conf:
1 | |
Please note, that when AccountingStorageEnforce is changed, a restart of the slurmctld daemon is required (not just a scontrol reconfig):
1 | |
Enable SLURM Multi Priority plugin
In order to enable ordering for the queue of jobs waiting to be scheduled, please modify slurm.conf:
1 | |
When slurm.conf is changed, you should reload configuration:
1 | |
Waldur Site Agent
Project for Waldur integration with a service provider's site. The main purpose of the agent is data syncronization between Waldur and a service backend (for example SLURM or MOAB cluster). The agent uses order information from Waldur to manage accounts in the site (backend) and accounting info from the site to update usage data in Waldur. For now, the agent supports only SLURM and MOAB clusters as a service backend.
Architecture
Agent is a stateless application, which is deployed on a machine with access to backend data. It supports 4 modes:
agent-order-process, which fetches ordering data from Waldur and updates a state of backend object correspondingly; (e.g. creates/updates/deletes SLURM accounts);agent-report, which reports computing usage and limits info from the backend to Waldur (e.g. update of resource usages);agent-membership-sync, which syncronizes membership info between Waldur and the backend (e.g. adds users to a SLURM allocation);agent-event-process, which uses event-based approach to do the same asagent-order-processandagent-membership-sync; requires either MQTT- or STOMP-plugin as an event delivery system between Waldur and the agent.
Code-wise, the agent consists of the main python module called waldur-site-agent
and set of plugins with implementation for different backends
(for example, waldur-site-agent-slurm).
The main module contains the configuration for running the
application, shared utils and abstract classes for backends.
A plugin should contain implementation of the abstract classes exposing them
via entry-points in the respecting pyproject.toml file.
Each plugin depends on the main module,
while this module uses plugin classes via entry-points.
For detailed information about the plugin architecture, including diagrams, implementation details, and custom plugin development, see the Architecture Documentation.
Integration with Waldur
The agent uses a Python-based Waldur client
communicating with Waldur backend
via REST interface.
Agent-order-process application pulls data of orders created
in Waldur and creates/updates/removes backend resources based on this info.
Agent-report fetches usage data pushes it to Waldur.
Agent-membership-sync fetches associations from
a backend and syncronizes it with remote ones.
Agent-event-process manages Waldur orders and membership in event-based way.
Integration with the site
SLURM cluster
The agent relies on SLURM command-line utilities (e.g. sacct and sacctmgr)
and should run on a headnode of the SLURM cluster.
MOAB cluster
The agent relies on MOAB command line utilities (e.g. mam-list-accounts and mam-create-account)
and should run on a headnode of the MOAB cluster as a root user.
Agent configuration
The application supports the following CLI arguments:
-m,--mode- mode of agent; supported values:order_process,report,membership_syncandevent_process; default isorder_process.-c,--config-file- path to the config file with provider settings.
Optional environment variables:
WALDUR_SITE_AGENT_ORDER_PROCESS_PERIOD_MINUTES- trigger period fororder_processmode in minutes (default is 5);WALDUR_SITE_AGENT_REPORT_PERIOD_MINUTES- trigger period forreportmode in minutes (default is 30);WALDUR_SITE_AGENT_MEMBERSHIP_SYNC_PERIOD_MINUTES- trigger period formembership_syncmode in minutes (default is 5).SENTRY_ENVIRONMENT- name of the Sentry environment.
The main config source for the agent is waldur-site-agent-config.yaml file.
Using it, the agent can serve multiple offerings
and setup backend-related data, for example settings of computing components.
File example and reference.
NB: for MOAB, the only acceptable backend component is deposit.
All other specified components are ignored by the agent.
NB: The timezone setting is important when agent and Waldur are deployed in
different timezones, this setting can be used to prevent billing period mismatches
at month boundaries. Recommended: timezone: "UTC".
Deployment
A user can deploy 4 separate instances of the agent. The first one (called agent-order-process) fetches data from Waldur with further processing, the second one (called agent-report) sends usage data from the backend to Waldur the third one syncs membership information between Waldur and the backend (called agent-membership-sync) and the optional fourth one processes order and membership info in event-based way (agent-event-process). The last one covers the same functionality as the first two services, but uses event bus for integration with Waldur. All the instances must be configured with provider config file and CLI variables.
To deploy them, you need to setup and start the systemd services.
Note: only one of these service combinations is possible:
- agent-order-process, agent-membership-sync and agent-report
- agent-event-process and agent-report
Prerequisite: offering configuration in Waldur
SLURM and MOAB
Agents require a pre-created offering in Waldur. As a service provider owner, you should create a new offering in the marketplace:
- Go to
Service Providersection of the organization and open offering creation menu - Input a name, choose a category, select
Waldur site agentfrom the drop-down list on the bottom and clickCreatebutton
- Open the offering page, choose
Edittab, clickAccountingsection, chooseAccounting plansfrom the drop-down list and create a plan: clickAdd planand input the necessary details;
- In the same page, click
Integrationsection chooseUser managementfrom the drop-down list and set theService provider can create offering useroption toYes;
- Activate the offering using the big green button
Activate.
Note: You will need to set the offering UUID in the agent config file.
For this, you can copy the UUID from the Integration -> Credentials
section on the same page:
Setup
Firstly, install the waldur-site-agent module:
1 | |
Secondly, create the provider config file and adjust the content for your needs.
1 2 3 4 5 | |
Please use the waldur_site_load_components command
to load computing components into Waldur.
This step is necessary for correct setup of the offering in Waldur.
1 | |
Thirdly, put systemd unit and provider config files to the corresponding locations.
-
agent-order-process systemd unit: waldur-agent-order-process.service
-
agent-report systemd unit: waldur-agent-report.service
-
agent-membership-sync systemd unit: waldur-agent-membership-sync.service
-
agent-event-process systemd unit: waldur-agent-event-process.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
After these preparation steps, run the following script to apply the changes.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Event-based processing
Each offering from the config file can have mqtt_enabled or stomp_enabled
set to true or false (false by default). NB: only of them can be true
If this setting set to true, the offering is ignored
by agent-order-process and agent-membership-sync,
instead, the agent-event-process takes care of it.
Older systemd versions
If you want to deploy the agents on a machine with systemd revision older than 240, you should use files with legacy configuration:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Custom backends
A user should explicitly set backend type for each agent process in an offering config. For this, a user should use the following settings in an offering item:
order_processing_backend- name of the backend from entrypoints to use for order processing;membership_sync_backend- name of the backend from entrypoints to use for membership syncing;reporting_backend- name of the backend from entrypoints to use for reporting.
If a setting is omitted, the agent doesn't start the respecting process.
For example, given the following config:
1 2 3 4 5 6 7 8 | |
the agent starts
- STOMP-based service only for order processing via SLURM
- usage-reporting service using a custom SLURM API, which is provided via custom module's entry-point
Username Management
The agent supports asynchronous username generation and management for offering users. This system provides pluggable backends for custom username generation logic and handles complex scenarios with graceful error recovery.
For comprehensive documentation on username management, async user creation workflows, configuration, and custom backend development, see the Username Management Documentation.
Provider config file reference
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | |
Docs ↵
Plugin Architecture
The Waldur Site Agent uses a pluggable backend system that allows external developers to create custom backend plugins without modifying the core codebase.
Core architecture & plugin system
---
config:
layout: elk
---
graph TB
subgraph "Core Package"
WA[waldur-site-agent<br/>Core Logic & Processing]
BB[BaseBackend<br/>Abstract Interface]
BC[BaseClient<br/>Abstract Interface]
CU[Common Utils<br/>Entry Point Discovery]
end
subgraph "Plugin Ecosystem"
PLUGINS[Backend Plugins<br/>SLURM, MOAB, MUP, etc.]
UMANAGE[Username Management<br/>Plugins]
end
subgraph "Entry Point System"
EP_BACKENDS[waldur_site_agent.backends]
EP_USERNAME[waldur_site_agent.username_management_backends]
end
%% Core dependencies
WA --> BB
WA --> BC
WA --> CU
%% Plugin registration and discovery
CU --> EP_BACKENDS
CU --> EP_USERNAME
EP_BACKENDS -.-> PLUGINS
EP_USERNAME -.-> UMANAGE
%% Plugin inheritance
PLUGINS -.-> BB
PLUGINS -.-> BC
UMANAGE -.-> BB
%% Styling - Dark mode compatible colors
classDef corePackage fill:#1E3A8A,stroke:#3B82F6,stroke-width:2px,color:#FFFFFF
classDef plugin fill:#581C87,stroke:#8B5CF6,stroke-width:2px,color:#FFFFFF
classDef entrypoint fill:#065F46,stroke:#10B981,stroke-width:2px,color:#FFFFFF
class WA,BB,BC,CU corePackage
class PLUGINS,UMANAGE plugin
class EP_BACKENDS,EP_USERNAME entrypoint
Agent modes & external systems
---
config:
layout: elk
---
graph TB
subgraph "Agent Modes"
ORDER[agent-order-process<br/>Order Processing]
REPORT[agent-report<br/>Usage Reporting]
SYNC[agent-membership-sync<br/>Membership Sync]
EVENT[agent-event-process<br/>Event Processing]
end
subgraph "Plugin Layer"
PLUGINS[Backend Plugins<br/>SLURM, MOAB, MUP, etc.]
end
subgraph "External Systems"
WALDUR[Waldur Mastermind<br/>REST API]
BACKENDS[Cluster Backends<br/>CLI/API Systems]
MQTT[MQTT/STOMP Broker<br/>Event Processing]
end
%% Agent mode usage of plugins
ORDER --> PLUGINS
REPORT --> PLUGINS
SYNC --> PLUGINS
EVENT --> PLUGINS
%% External connections
ORDER <--> WALDUR
REPORT <--> WALDUR
SYNC <--> WALDUR
EVENT <--> WALDUR
EVENT <--> MQTT
PLUGINS <--> BACKENDS
%% Styling - Dark mode compatible colors
classDef agent fill:#B45309,stroke:#F59E0B,stroke-width:2px,color:#FFFFFF
classDef plugin fill:#581C87,stroke:#8B5CF6,stroke-width:2px,color:#FFFFFF
classDef external fill:#C2410C,stroke:#F97316,stroke-width:2px,color:#FFFFFF
class ORDER,REPORT,SYNC,EVENT agent
class PLUGINS plugin
class WALDUR,BACKENDS,MQTT external
Key plugin features
- Automatic Discovery: Plugins are automatically discovered via Python entry points
- Modular Backends: Each backend (SLURM, MOAB, MUP) is a separate plugin package
- Independent Versioning: Plugins can be versioned and distributed separately
- Extensible: External developers can create custom backends by implementing
BaseBackend - Workspace Integration: Seamless development with
uv workspacedependencies - Multi-Backend Support: Different backends for order processing, reporting, and membership sync
Plugin structure
Built-in plugin structure
1 2 3 4 5 6 7 | |
Available plugins
SLURM plugin (waldur-site-agent-slurm)
- Communication: CLI-based via
sacctmgr,sacct,scancelcommands - Components: CPU, memory, GPU (TRES-based accounting)
- Features:
- QoS management (downscale, pause, restore)
- Home directory creation
- Job cancellation
- User limit management
- Parser: Complex SLURM output parsing with time/unit conversion
- Client:
SlurmClientwith command-line execution
MOAB plugin (waldur-site-agent-moab)
- Communication: CLI-based via
mam-*commands - Components: Deposit-based accounting only
- Features:
- Fund management
- Account creation/deletion
- Basic user associations
- Parser: Simple report line parsing for charges
- Client:
MoabClientwith MOAB Accounting Manager integration
MUP plugin (waldur-site-agent-mup)
- Communication: HTTP REST API
- Components: Configurable limit-based components
- Features:
- Project/allocation management
- User creation and management
- Research field mapping
- Multi-component allocation support
- Client:
MUPClientwith HTTP authentication and comprehensive API coverage - Advanced: Most sophisticated plugin with full user lifecycle management
Basic username management (waldur-site-agent-basic-username-management)
- Purpose: Provides base username management interface
- Implementation: Minimal placeholder implementation
- Extensibility: Template for custom username generation backends
Creating Custom Plugins
Backend Plugin Development
- Create plugin package:
1 2 | |
- Setup pyproject.toml:
1 2 3 4 5 6 7 | |
- Implement backend class:
1 2 3 4 5 6 7 8 9 10 11 12 | |
- Install and register:
1 | |
Username management plugin development
- Entry point registration:
1 2 | |
- Implementation:
1 2 3 4 5 6 | |
- Configuration:
1 2 3 | |
Plugin discovery mechanism
The core system automatically discovers plugins through Python entry points:
1 2 3 4 5 6 | |
This enables: - Zero-configuration discovery: Plugins are found automatically when installed - Dynamic loading: Plugin classes are loaded on-demand - Flexible deployment: Different plugin combinations for different environments - Third-party integration: External plugins work seamlessly with the core system
Configuration integration
Plugins integrate through offering configuration:
1 2 3 4 5 6 7 | |
This allows: - Mixed backend usage: Different backends for different operations - Gradual migration: Transition between backends incrementally - Specialized backends: Use purpose-built backends for specific tasks - Development flexibility: Test new backends alongside production ones
Offering Users and Async User Creation
The Waldur Site Agent provides robust support for managing offering users with asynchronous username generation and state management. This system enables non-blocking user processing and supports complex username generation scenarios through a pluggable backend architecture.
Overview
Offering users represent the relationship between Waldur users and marketplace offerings. The agent handles username generation, state transitions, and integration with backend systems to ensure users can access provisioned resources.
Async User Creation Workflow
State Machine
The async user creation follows a state-based workflow that prevents blocking operations:
stateDiagram-v2
[*] --> REQUESTED : User requests access
REQUESTED --> CREATING : Begin username generation
CREATING --> OK : Username successfully created
CREATING --> PENDING_ACCOUNT_LINKING : Manual linking required
CREATING --> PENDING_ADDITIONAL_VALIDATION : Additional validation needed
PENDING_ACCOUNT_LINKING --> OK : Username generation succeeds on retry
PENDING_ADDITIONAL_VALIDATION --> OK : Username generation succeeds on retry
OK --> [*] : User ready for resource access
State Descriptions
- REQUESTED: Initial state when user requests access to an offering
- CREATING: Transitional state during username generation process
- OK: Username successfully generated and user is ready for resource access
- PENDING_ACCOUNT_LINKING: Manual intervention required to link user accounts
- PENDING_ADDITIONAL_VALIDATION: Additional validation steps needed before proceeding
Core Components
Main Functions
sync_offering_users()
Entry point function that processes all offering users across configured offerings.
Usage:
1 | |
Behavior:
- Iterates through all configured offerings
- Retrieves offering users from Waldur API
- Delegates processing to
update_offering_users()
update_offering_users()
Core processing function that handles username generation and state transitions.
Process: 1. Checks offering's username generation policy 2. Processes users in REQUESTED state 3. Handles users in pending states (PENDING_ACCOUNT_LINKING, PENDING_ADDITIONAL_VALIDATION) 4. Manages state transitions and error handling
Username Management Backend System
The agent uses a pluggable backend architecture for username generation, allowing custom implementations for different identity providers and naming conventions.
Base Abstract Class
1 2 3 4 5 6 7 8 9 10 11 12 | |
Plugin Registration
Register your backend via entry points in pyproject.toml:
1 2 | |
Built-in Backends
- base: Basic username management backend (plugins/basic_username_management/)
- UnknownUsernameManagementBackend: Fallback backend when configuration is missing
Configuration
Offering Configuration
Configure username management per offering in your agent configuration:
1 2 3 4 5 6 7 8 9 | |
Prerequisites
- Service Provider Username Generation: The offering must be configured
with
username_generation_policy = SERVICE_PROVIDERin Waldur - Backend Plugin: Appropriate username management backend must be installed and configured
- Permissions: API token must have permissions to manage offering users
Integration with Order Processing
The async user creation system is seamlessly integrated with the agent's order processing workflows:
Automatic Processing
Username generation is automatically triggered during: - Resource creation orders - User addition to existing resources - Membership synchronization operations
Implementation in Processors
The OfferingBaseProcessor class provides _update_offering_users() method that:
- Calls username generation for users with blank usernames
- Refreshes offering user data after processing
- Filters users to only include those with valid usernames for resource operations
Example usage in order processing:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Error Handling
Exception Types
The system defines specific exceptions for different error scenarios:
OfferingUserAccountLinkingRequiredError: Raised when manual account linking is requiredOfferingUserAdditionalValidationRequiredError: Raised when additional validation steps are needed
Both exceptions support an optional comment_url parameter to provide links to forms, documentation, or
other resources needed for error resolution.
Error Recovery
When exceptions occur: 1. User state transitions to appropriate pending state 2. Error details are logged with context 3. Comment field is updated with error message and comment_url field with any provided URL 4. Processing continues for other users 5. Pending users are retried in subsequent runs
Best Practices
Username Backend Implementation
- Idempotent Operations: Ensure
get_or_create_username()can be called multiple times safely - Error Handling: Raise appropriate exceptions for recoverable errors
- Logging: Include detailed logging for troubleshooting
- Validation: Validate generated usernames meet backend system requirements
Deployment Considerations
- Regular Sync: Run
waldur_sync_offering_usersregularly via cron or systemd timer - Monitoring: Monitor pending user states for manual intervention needs
- Backup Strategy: Consider username mapping backup for disaster recovery
- Testing: Test username generation logic thoroughly before production deployment
Troubleshooting
Diagnostic Commands
1 2 3 4 5 6 7 8 9 | |
SLURM Usage Reporting Setup Guide
This guide explains how to set up a single Waldur Site Agent instance for usage reporting with SLURM backend. This configuration is ideal when you only need to collect and report usage data from your SLURM cluster to Waldur Mastermind.
Overview
The usage reporting agent (report mode) collects CPU, memory, and other resource usage data from SLURM
accounting records and sends it to Waldur Mastermind. It runs in a continuous loop, fetching usage data for
the current billing period and reporting it at regular intervals.
Prerequisites
System Requirements
- Linux system with access to SLURM cluster head node
- Python 3.11 or higher
uvpackage manager installed- Root access (required for SLURM commands)
- Network access to Waldur Mastermind API
SLURM Requirements
- SLURM accounting enabled (
sacctandsacctmgrcommands available) - Access to SLURM accounting database
- Required SLURM commands:
sacct- for usage reportingsacctmgr- for account managementsinfo- for cluster diagnostics
Installation
1. Clone and Install the Application
1 2 3 4 5 6 | |
2. Create Configuration Directory
1 | |
Configuration
1. Create Configuration File
Create /etc/waldur/waldur-site-agent-config.yaml with the following configuration:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | |
2. Configuration Parameters Explained
Waldur Connection
waldur_api_url: URL to your Waldur Mastermind API endpointwaldur_api_token: API token for authentication (create in Waldur admin)waldur_offering_uuid: UUID of the SLURM offering in Waldur
Backend Settings
default_account: Root account in SLURM cluster- Prefixes: Used to identify accounts created by the agent (for filtering)
Backend Components
cpu: CPU usage tracking in CPU-minutes (SLURM native unit)mem: Memory usage tracking in MB-minutes (SLURM native unit)unit_factor: Conversion factor from SLURM units to Waldur unitsaccounting_type: "usage": Report actual usage (not limits)
Deployment
Option 1: Systemd Service (Recommended)
- Copy service file:
1 | |
- Reload systemd and enable service:
1 2 3 | |
- Check service status:
1 | |
Option 2: Manual Execution
For testing or one-time runs:
1 2 3 4 5 | |
Operation
How It Works
- Initialization: Agent loads configuration and connects to SLURM cluster
- Account Discovery: Identifies accounts matching configured prefixes
- Usage Collection:
- Runs
sacctto collect usage data for current billing period - Aggregates CPU and memory usage per account and user
- Converts SLURM units to Waldur units using configured factors
- Reporting: Sends usage data to Waldur Mastermind API
- Sleep: Waits for configured interval (default: 30 minutes)
- Repeat: Returns to step 3
Timing Configuration
Control reporting frequency with environment variable:
1 2 | |
Logging
Systemd Service Logs
1 2 3 4 5 | |
Manual Execution Logs
Logs are written to stdout/stderr when running manually.
Monitoring and Troubleshooting
Health Checks
- Test SLURM connectivity:
1 | |
- Verify configuration:
1 2 | |
Common Issues
SLURM Commands Not Found
- Ensure SLURM tools are in PATH
- Verify
sacctandsacctmgrare executable - Check SLURM accounting is enabled
Authentication Errors
- Verify Waldur API token is valid
- Check network connectivity to Waldur Mastermind
- Ensure offering UUID exists in Waldur
No Usage Data
- Verify accounts exist in SLURM with configured prefixes
- Check SLURM accounting database has recent data
- Ensure users have submitted jobs in the current billing period
Permission Errors
- Agent typically needs root access for SLURM commands
- Verify service runs as root user
- Check file permissions on configuration file
Debugging
Enable debug logging by setting environment variable:
1 | |
Data Flow
1 2 3 4 5 6 | |
Security Considerations
- API Token Security: Store Waldur API token securely, restrict file permissions
- Root Access: Agent needs root for SLURM commands - run in controlled environment
- Network: Ensure secure connection to Waldur Mastermind (HTTPS)
- Logging: Avoid logging sensitive data, configure log rotation
Integration Notes
This setup is designed for usage reporting only. For a complete Waldur Site Agent deployment that includes:
- Order processing (resource creation/deletion)
- Membership synchronization
- Event processing
You would need additional agent instances or a multi-mode configuration with different service files for each mode.
Ended: Docs
Ended: Providers
Rke2 setup ↵
Waldur on RKE2
RKE2 installation and setup
To install Waldur on top of RKE2 you need to:
-
Install Ansible with version >= 2.10 and ensure python3 is installed.
-
Download this repository
-
At least 3 nodes with minimal requirements for Kubernetes nodes
1 2 3
8GB RAM 4 vCPU 30GB for system volume and a dedicated 60GB for storage (Longhorn) -
Install
kubernetes.corecollection from ansible galaxy.1 2 3 4 5 6 7 8
ansible-galaxy collection install kubernetes.core ansible-galaxy collection install ansible.posix # or curl -L -o ansible-galaxy/kubernetes-core-2.3.2.tar.gz --create-dirs https://galaxy.ansible.com/download/kubernetes-core-2.3.2.tar.gz ansible-galaxy collection install ansible-galaxy/kubernetes-core-2.3.2.tar.gz curl -L -o ansible-galaxy/ansible-posix-1.4.0.tar.gz https://galaxy.ansible.com/download/ansible-posix-1.4.0.tar.gz ansible-galaxy collection install ansible-galaxy/ansible-posix-1.4.0.tar.gz -
Adjust variables in
ansible-config/rke2_varsfile -
(Optional) Run the playbook to setup infrastructure (Kubernetes and Longhorn):
1 2
cd ansible-config ansible-playbook -D -i rke2_inventory install-infrastructure.yaml -
Run the playbook to install Waldur and dependencies:
1 2
cd ansible-config ansible-playbook -D -i rke2_inventory install-applications.yaml
You can check Waldur release installation with the following steps:
-
ssh to a node from inventory with
initial_server=trueand check all the pods from the default namespace:1 2
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml kubectl get pods -n default
If you run Waldur in a different namespace, please adjust the value of the -n option in the last command above.
Add admin ssh keys
- Setup
admin_keysandrevoked_admin_keysvars in theansible-config/rke2_varsfile -
Run the corresponding playbook
1 2
cd ansible-config ansible-playbook -D -i rke2_inventory add-ssh-keys.yml
Add haproxy load balancer
- Setup
haproxy_stats_passwordvar in theansible-config/rke2_varsfile -
Run the corresponding playbook
1 2
cd ansible-config ansible-playbook -D -i rke2_inventory add-haproxy-host.yml
Waldur Helm configuration
A user can override default settings for Waldur Helm. The ansible-config/waldur/values.yaml is the main settings file. Additional configuration features files (e.g. for SAML2, whitelabeling, bootstrapping, etc.) can be included by placing into corresponding subdirectories of ansible-config/waldur/ folder. The paths to the subdirectories should be specified in ansible-config/waldur/values.yaml, e.g. waldur.saml2.dir value.
Waldur Helm configuration is described in the public docs; example values.yaml file: link, example additional files: link.
Update of Waldur
To update Waldur user needs to execute the corresponding playbook:
1 2 | |
Update of Waldur dependencies
To update Waldur dependencies, a user should:
- Setup the desired components for update in
ansible-config/rke2_varsfile, e.g. setsetup_postgresqltoyesin case of PostgreSQL Helm chart update. NB: please, don't change chart versions manually, it can cause failure of Waldur application -
Run the corresponding playbook:
1 2
cd ansible-config ansible-playbook -D -i rke2_inventory install-applications.yaml
Example of changes in ansible-config/rke2_vars file:
1 2 3 4 5 6 7 8 9 | |
With this setup, the playbook will update PostgreSQL release only. If the user wants to update RabbitMQ too, they should set setup_rabbitmq: yes
Waldur log fetching
To get logs from Waldur containers, a users needs to connect to one of the RKE2 nodes:
1 | |
A node IP should be chosen from the inventory file (e.g. rke2_inventory).
In the node's shell, the user should run the following to setup Kubernetes client:
1 | |
After this, the user can get Waldur API logs:
1 | |
Same works for Celery worker:
1 | |
Note: if you use a non-default namespace for Waldur release, please change the value for -n option in the aforementioned command
Setup SSL certificates
NB: do not forget to set apiScheme ans homeportScheme to https in ansible-config/waldur/values.yaml
Custom certificates
To setup the SSL certificates, please do the following steps:
- Copy the certificate and key to the
ansible-config/waldur/tlsdirectory. NB: key must be namedtls.keyand cert itself -tls.crt - In
ansible-config/waldur/values.yaml, setingress.tls.sourcetosecret - Update Waldur release
Let's Encrypt
To setup SSL certificates using Let's Encrypt, please do the following steps:
- In
ansible-config/rke2_vars, setsetup_lets_encrypttoyes - In
ansible-config/waldur/values.yaml, setingress.tls.sourcetoletsEncrypt - Install Let's Encrypt via
install-applications.yamlplaybook
1 | |
Enable K8s dashboard
Make sure that K8s dashboard is deployed. Login to one of the K8s nodes.
1 2 3 4 5 | |
K8s dashboard should now be accessible on port 8001 in that node -- or load balancer node on port 8001 if configured.
Recover data from DB backup
In order to apply an existing backup to database, a corresponding playbook exists.
NB:
- This operation drops an existing database, creates an empty one and applies the pre-created backup
- During restoration process, the site will be unavailable
During execution, you will be asked about backup name. You should input it in a correct way. Example of running playbook:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
After this, you should input one of the following lines:
- backup-2022-12-01-05-00.sql.gz
- backup-2022-11-30-05-00.sql.gz
- backup-2022-11-29-05-00.sql.gz
- backup-2022-11-28-16-30.sql.gz
- backup-2022-11-28-16-28.sql.gz
Otherwise, the entire process will fail, but the site and database with old data will be still available.
To start the process, please, execute the following line in the machine connected to RKE2 nodes:
1 | |
Ended: Rke2 setup
Ended: Admin guide
Developer guide ↵
Developer documentation
This documentation provides comprehensive guidance for Waldur development. It covers essential topics including installation and setup, core architectural concepts like permissions and managed entities, background processing systems, and development best practices.
Key areas covered:
- Installation and development workflow setup
- Core concepts: permissions, managed entities, background processing, quotas, logging
- Development guides: serializers, views, tests, documentation, resource actions
- Localization and internationalization
- System architecture: events, models, templates
- Plugin development and existing plugin implementations
Core concepts ↵
Background processing
For executing heavier requests and performing background tasks Waldur is using Celery. Celery is a task queue that supports multiple backends for storing the tasks and results.
Currently Waldur is relying on RabbitMQ backend - RabbitMQ server must be running for requests triggering background scheduling to succeed.
Finite state machines
Some of the models in Waldur have a state field representing their
current condition. The state field is implemented as a finite state
machine. Both user requests and background tasks can trigger state
transition. A REST client can observe changes to the model instance
through polling the state field of the object.
Let's take VM instance in 'offline' state. A user can request the instance to start by issuing a corresponding request over REST. This will schedule a task in Celery and transition instance status to 'starting_scheduled'. Further user requests for starting an instance will get state transition validation error. Once the background worker starts processing the queued task, it updates the Instance status to the 'starting'. On task successful completion, the state is transitioned to 'online' by the background task.
Error state of background tasks
If a background task has failed to achieve it's goal, it should transit into an error state. To propagate more information to the user each model with an FSM field should include a field for error message information - error_message. The field should be exposed via REST. Background task should update this field before transiting into an erred state.
Cleaning of the error state of the model instance should clean up also
error_message field.
Core Checklists
The core checklist module provides a flexible questionnaire system that enables organizations to manage various types of compliance and metadata requirements through customizable questionnaires with conditional logic and review workflows.
Overview
The checklist system is designed as an extendable staff-configured metadata schema to be used in different scenarios, for example:
- Project Metadata: Extendable schema for project metadata
- Project Compliance: Ensures projects meet organizational standards
- Proposal Compliance: Validates proposals before submission
- Offering Compliance: Verifies marketplace offerings meet requirements
Core Models
Category
Groups checklists by category with icon support for UI display. Categories provide organizational structure for managing different types of compliance checklists.
Checklist
Main container for compliance questions. Each checklist has a type (project/proposal/offering compliance/project metadata) and contains an ordered set of questions that users must complete.
Key features:
- Type-based categorization (project_compliance, proposal_compliance, offering_compliance, project_metadata)
- Dynamic question visibility based on user context and dependencies
- Optional category grouping for UI organization
- Timestamped for audit trail
Question
Individual questions with configurable types, ordering, conditional user guidance, and review trigger logic based on answer values.
Question Types:
- Boolean: Yes/No/N/A responses
- Single Select: Choose one option from a list
- Multi Select: Choose multiple options from a list
- Text Input: Short text responses
- Text Area: Long text responses
- Number: Numeric input with optional min/max validation constraints
- Date: Date selection
- File: File upload (planned)
Features:
- Conditional visibility based on dependencies
- Review triggering based on answer values
- Conditional user guidance display
- Required/optional questions
- Ordered display
NUMBER Question Type Validation
NUMBER type questions support optional validation constraints for form generation and server-side validation:
- min_value: Minimum allowed numeric value (decimal field with 4 decimal places)
- max_value: Maximum allowed numeric value (decimal field with 4 decimal places)
- Validation: Server-side validation rejects answers outside the specified range
- UI Integration: Min/max values are exposed through serializers for client-side form constraints
- Format Support: Accepts both integer and floating-point numbers
Example API Usage:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Validation Scenarios:
- Budget ranges (e.g., $1K - $10M)
- Percentages (0-100)
- Age ranges (18-100)
- Scientific measurements with decimal precision
- Counts and quantities with natural limits
QuestionOption
Multiple choice options for select-type questions with ordering support. Provides the available choices for single-select and multi-select questions.
QuestionDependency
Conditional visibility logic - questions can depend on other questions' answers with circular dependency prevention. This enables dynamic questionnaires that adapt based on user responses.
Operators supported:
equals: Exact matchnot_equals: Not equal tocontains: Text contains substringin: Value exists in listnot_in: Value does not exist in list
Dependency Logic Operators:
Questions with multiple dependencies can use different logic operators to determine visibility:
and(default): All conditions must be true - Question is visible only when ALL dependencies are satisfiedor: Any condition must be true - Question is visible when AT LEAST ONE dependency is satisfied
Example: A security question might be shown if the project handles personal data OR processes payments OR stores sensitive information.
ChecklistCompletion
Generic completion tracking model that links checklists to any domain object (proposals, projects, etc.) using Django's generic foreign key system.
Features:
- Generic foreign key to any model (scope)
- Completion status tracking
- Review requirement detection
- Reviewer assignment and notes
- Completion percentage calculation
Answer
User responses linked to ChecklistCompletion objects, stored as JSON with automatic review flagging and reviewer tracking.
Features:
- Flexible JSON storage for different answer types
- Automatic review requirement detection based on question configuration
- Review workflow with reviewer assignment and notes
- Audit trail with timestamps
- Answer validation based on question type
- Unique constraints per completion/question/user
API Endpoints
Core Endpoints
GET /api/checklists-admin-categories/- List checklist categoriesGET /api/checklists-admin-categories/{uuid}/- Category details
Admin Endpoints (Staff Only)
GET /api/checklists-admin/- List checklists (staff only)POST /api/checklists-admin/- Create checklist (staff only)GET /api/checklists-admin/{uuid}/- Checklist details (staff only)PUT/PATCH /api/checklists-admin/{uuid}/- Update checklist (staff only)DELETE /api/checklists-admin/{uuid}/- Delete checklist (staff only)-
GET /api/checklists-admin/{uuid}/questions/- List checklist questions (staff only) -
GET /api/checklists-admin-questions/- List all questions (staff only) POST /api/checklists-admin-questions/- Create question (staff only)GET /api/checklists-admin-questions/{uuid}/- Question details (staff only)PUT/PATCH /api/checklists-admin-questions/{uuid}/- Update question (staff only)-
DELETE /api/checklists-admin-questions/{uuid}/- Delete question (staff only) -
GET /api/checklists-admin-question-options/- List question options (staff only) POST /api/checklists-admin-question-options/- Create option (staff only)GET /api/checklists-admin-question-dependencies/- List question dependencies (staff only)POST /api/checklists-admin-question-dependencies/- Create question dependency (staff only)- Full CRUD operations on question options and dependencies
Integration via ViewSet Mixins
The core checklist module provides ViewSet mixins for integration into other apps:
UserChecklistMixin - For end users filling checklists:
GET /{app}/{uuid}/checklist/- Get checklist questions with user's answersGET /{app}/{uuid}/completion_status/- Get completion statusPOST /{app}/{uuid}/submit_answers/- Submit answers (including answer removal)
ReviewerChecklistMixin - For reviewers (with sensitive review logic):
GET /{app}/{uuid}/checklist_review/- Get full checklist with review triggersGET /{app}/{uuid}/completion_review_status/- Get completion with review details
Examples:
GET /api/proposals/{uuid}/checklist/- Get proposal checklistPOST /api/proposals/{uuid}/submit_answers/- Submit proposal answersGET /api/proposals/{uuid}/checklist_review/- Review proposal checklist (reviewers only)
Question Dependencies
The system supports sophisticated conditional logic through question dependencies:
- Simple Dependencies: Show Question B only if Question A equals specific value
- Complex Dependencies: Multiple conditions with different operators and logic
- Circular Prevention: Automatic detection and prevention of circular dependencies
- Dynamic Visibility: Real-time question showing/hiding based on current answers
Multiple Dependency Logic
Questions can have multiple dependencies evaluated using different logic operators:
AND Logic (Default)
Question visible only when ALL dependencies are satisfied:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
OR Logic
Question visible when ANY dependency is satisfied:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
Example: A security questionnaire might show cloud-specific questions if the user indicates they use cloud services, and data protection questions if they handle sensitive data OR require compliance.
Answer Management
Answer Submission and Updates
Users can submit, update, and remove answers through the submit_answers endpoint:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Answer Removal
Users can remove their answers by submitting null as the answer_data value. This performs a hard deletion of the answer record and automatically:
- Recalculates completion percentage - Removed answers no longer count toward completion
- Updates completion status - Required questions with removed answers mark checklist as incomplete
- Updates review requirements - Removing answers that triggered reviews clears the review flag
- Maintains audit trail - Through Answer model timestamps before deletion
Key Features:
- Safe operations: Attempting to remove non-existent answers succeeds without errors
- Mixed operations: Single request can create, update, and remove answers simultaneously
- Validation bypass: Null values skip validation since they indicate removal intent
- Status synchronization: Completion and review status automatically updated after changes
Example - Mixed Operations:
1 2 3 4 5 6 | |
Review Workflow
Questions can be configured to trigger reviews based on answers:
- Automatic Review Triggers: Specific answer values trigger review requirements
- Always Review: Questions that always require review regardless of answer
- Review Assignment: Staff can be assigned to review flagged answers
- Review Notes: Internal notes and approval tracking
Configuring Conditional Visibility via REST API
The checklist system supports sophisticated conditional logic through two mechanisms: Question Dependencies (for question visibility) and Conditional User Guidance (for guidance text display). Both use the same flexible operator-based system.
Supported Operators
All conditional logic supports these operators, with specific question type compatibility:
equals- Exact match- Compatible with: NUMBER, DATE, BOOLEAN question types
-
Example: Check if boolean answer is
true, or if number equals100 -
not_equals- Not equal to - Compatible with: NUMBER, DATE, BOOLEAN question types
-
Example: Check if boolean answer is not
false, or if number is not0 -
contains- Text contains substring - Compatible with: TEXT_INPUT, TEXT_AREA question types
- Example: Check if text answer contains "sensitive" or "export"
-
Note: Case-sensitive matching
-
in- Value exists in list - Compatible with: SINGLE_SELECT, MULTI_SELECT question types
- Example: Check if selected option is one of
["high", "critical", "urgent"] - Note: For single-select, checks if the selected value is in the condition list
-
Note: For multi-select, checks if any selected value is in the condition list
-
not_in- Value does not exist in list - Compatible with: SINGLE_SELECT, MULTI_SELECT question types
- Example: Check if selected option is not one of
["low", "minimal"] - Note: For single-select, checks if the selected value is not in the condition list
- Note: For multi-select, checks if none of the selected values are in the condition list
Question Dependencies (Conditional Visibility)
Configure questions to show/hide based on answers to other questions.
Creating a Question Dependency
1 2 3 4 5 6 7 8 9 | |
Example Scenarios
1. Show cloud questions only if user selects "cloud" deployment:
1 2 3 4 5 6 7 | |
2. Show security questions if user indicates sensitive data:
1 2 3 4 5 6 7 | |
3. Show budget questions for high-value options:
1 2 3 4 5 6 7 | |
Conditional User Guidance
Configure guidance text to appear based on user answers.
Creating a Question with Always-Visible Guidance
1 2 3 4 5 6 7 8 9 10 11 12 | |
Creating a Question with Conditional Guidance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Updating Conditional Guidance
1 2 3 4 5 6 7 8 9 | |
Example Scenarios
1. Show compliance guidance only for "Yes" answers:
1 2 3 4 5 6 7 8 9 | |
2. Show warning guidance for multiple selections:
1 2 3 4 5 6 7 8 9 | |
3. Show budget guidance for high-value project categories:
1 2 3 4 5 6 7 8 9 | |
Complex Scenarios
Multi-Level Dependencies
Create cascading question visibility:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Combined Review Triggers and Guidance
Configure a question that both shows guidance and triggers reviews:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
API Response Examples
When questions are retrieved through user-facing endpoints, conditional logic is automatically applied:
Question with visible guidance:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Question with hidden guidance (condition not met):
1 2 3 4 5 6 7 8 9 10 | |
Configuring Review Triggers and User Guidance
Beyond conditional visibility, questions can be configured with review triggers (to flag answers for staff review) and conditional user guidance (to show context-sensitive help text). Both features use the same operator system for maximum flexibility.
Review Trigger Configuration
Review triggers automatically flag specific answers for staff review, enabling compliance workflows and quality control.
Basic Review Trigger Setup
1. Always Require Review:
1 2 3 4 5 6 7 8 9 10 11 | |
2. Conditional Review Trigger:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Review Trigger Scenarios
1. Security Review for High-Risk Projects:
1 2 3 4 5 6 7 8 | |
2. Budget Review for Large Expenditures:
1 2 3 4 5 6 7 8 | |
3. Compliance Review for Specific Text Content:
1 2 3 4 5 6 7 8 | |
4. Multiple Review Conditions:
1 2 3 4 5 6 7 8 | |
Advanced User Guidance Configuration
User guidance provides contextual help that appears based on user answers, improving completion rates and data quality.
Static vs Conditional Guidance
1. Static Guidance (Always Visible):
1 2 3 4 5 6 7 | |
2. Conditional Guidance (Answer-Dependent):
1 2 3 4 5 6 7 8 9 | |
User Guidance Scenarios
1. Regulatory Guidance for EU Users:
1 2 3 4 5 6 7 8 9 | |
2. Technical Guidance for Specific Technologies:
1 2 3 4 5 6 7 8 9 | |
3. Process Guidance for Complex Workflows:
1 2 3 4 5 6 7 8 9 | |
4. Warning Guidance for Risk Factors:
1 2 3 4 5 6 7 8 9 | |
Combined Review and Guidance Workflows
Configure questions that both provide guidance and trigger reviews for comprehensive workflows.
Example: Financial Transaction Handling
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Example: Multi-Condition Security Workflow
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Updating Existing Questions
Adding Review Triggers to Existing Questions
1 2 3 4 5 6 7 8 | |
Modifying User Guidance
1 2 3 4 5 6 7 8 9 | |
Removing Conditions
1 2 3 4 5 6 7 8 9 10 11 | |
API Response Examples for Review and Guidance
Question with Active Guidance (User View)
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Question with Review Flag (Reviewer View)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Completion Status with Review Summary
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
Best Practices
Review Trigger Design
- Clear Criteria: Use specific, unambiguous trigger conditions
- Risk-Based: Focus triggers on high-risk or compliance-critical answers
- Consistent Operators: Use the same operators across similar question types
- Documentation: Include internal notes about why specific answers trigger reviews
User Guidance Best Practices
- Actionable: Provide specific next steps, not just information
- Contextual: Tailor guidance to the specific answer given
- Timely: Show guidance when users need it most
- Resource Links: Include references to relevant documentation or contacts
Workflow Integration
- Progressive Disclosure: Use conditional visibility with guidance to reduce cognitive load
- Layered Validation: Combine client-side guidance with server-side review triggers
- Clear Feedback: Ensure users understand when answers will be reviewed
- Review Efficiency: Design triggers to minimize false positives for reviewers
Permission System
Access control is implemented through:
- Staff Administration: Direct checklist management restricted to staff users
- App-level Integration: Checklist access controlled via host application permissions
- Mixin-based Permissions: Apps define their own permission requirements for checklist actions
- Review Segregation: Separate permissions for users vs reviewers to hide sensitive review logic
Validation and Data Integrity
The system includes comprehensive validation:
- Answer Type Validation: Ensures answers match expected question types
- Required Question Enforcement: Prevents submission of incomplete required questions
- UUID Validation: Proper UUID format checking for references
- Circular Dependency Prevention: Automatic detection of invalid dependency chains
Integration with Waldur Apps
The checklist system integrates with various Waldur applications:
- Generic Foreign Key System: Can be attached to any Django model (proposals, projects, resources, etc.)
- ViewSet Mixins: Easy integration through
UserChecklistMixinandReviewerChecklistMixin - Flexible Completion Tracking: Each integration controls its own completion lifecycle
- Permission Delegation: Host applications define appropriate permission checks
Usage Patterns
Basic Integration Flow
- Admin Setup: Staff creates checklists with questions, dependencies, and review triggers
- App Integration: Host app (e.g., proposals) creates
ChecklistCompletionobjects linking checklists to domain objects - User Interaction: End users access checklists through app-specific endpoints using
UserChecklistMixin - Answer Submission: Users submit answers, triggering automatic completion status updates
- Review Process: Reviewers access full checklist information through
ReviewerChecklistMixin - Completion Tracking: Host apps monitor completion status and take appropriate actions
Example Integration (Proposals)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Technical Implementation
The module follows Waldur's standard architecture patterns:
- Django Models: Standard ORM with mixins (UuidMixin, DescribableMixin, TimeStampedModel)
- Generic Foreign Keys: Flexible linking to any Django model through ChecklistCompletion
- DRF Serializers: REST API serialization with context-aware field exposure
- ViewSet Mixins: Reusable mixins for consistent integration across applications
- Admin-Only Core APIs: Direct checklist management restricted to staff
- Permissions: Delegated to host applications with mixin-based controls
- Filtering: Advanced filtering for admin interfaces
- Validation: Answer validation based on question types and business rules
Architecture Principles
- Separation of Concerns: Core checklist logic separated from app-specific business logic
- Flexible Integration: Generic foreign keys allow attachment to any model
- Security by Design: Review logic hidden from users, exposed only to authorized reviewers
- Extensible Question Types: Support for multiple answer formats with validation
- Dependency Management: Sophisticated conditional logic with circular prevention
The system is designed for scalability and extensibility, supporting complex compliance scenarios while maintaining ease of integration for host applications.
STOMP-Based Event Notification System
System Overview
The STOMP-based event notification system allows Waldur to communicate changes to resources, orders, and user roles to the waldur-site-agent that runs on a remote cluster. This eliminates the need for constant polling and enables immediate reactions to events.
The key components include:
-
STOMP Publisher (Waldur side): Located in the waldur_core/logging/utils.py file, this component publishes messages to STOMP queues when specific events occur.
-
Event Subscription Service: Manages subscriptions to events by creating unique topics for each type of notification. Related file: event subscription management via API: waldur_core/logging/views.py
-
STOMP Consumer (Agent side): The
waldur-site-agentrunning on the resource provider's infrastructure that subscribes to these topics and processes incoming messages. Related files: - Event subscription registration: waldur_site_agent/event_processing/utils.py
- STOMP message handlers: waldur_site_agent/event_processing/handlers.py
- STOMP listener: waldur_site_agent/event_processing/listener.py
Event Flow
- An event occurs in Waldur (e.g., a new order is created, a user role changes, or a resource is updated)
- Waldur publishes a message to the appropriate STOMP queue(s)
- The site agent receives the message and processes it based on the event type
- The agent communicates with the backend (e.g., SLURM) to execute the necessary actions
Message Types
The system handles three primary types of events:
- Order Messages: Notifications about marketplace orders (create, update, terminate)
- User Role Messages: Changes to user permissions in projects
- Resource Messages: Updates to resource configuration or status
Implementation Details
Publishing Messages (Waldur Side)
When events like order creation occur, Waldur prepares and publishes STOMP messages: code link
These messages are then sent via: publish_stomp_messages
Subscription Management (Agent Side)
The EventSubscriptionManager class handles creation of event subscriptions and setup of STOMP consumers:
- get_or_create_event_subscription - create an event subscription in Waldur if doesn't exist yet
- start_stomp_connection - setup STOMP client, connect agent to the broker and subscribe consumer to a queue
Message Processing (Agent Side)
When a message arrives, it's routed to the appropriate handler based on the event type:
- on_order_message_stomp - create or update resources on backend
- on_user_role_message_stomp - create or update access permissions on backend
- on_resource_message_stomp - create or update resource configuration on backend
Technical Components
- WebSocket Transport: The system uses STOMP over WebSockets for communication
- TLS Security: Connections can be secured with TLS
- User Authentication: Each subscription has its own credentials and permissions in RabbitMQ
- Queue Structure: Queue names follow the pattern
/queue/subscription_{subscription_uuid}_offering_{offering_uuid}_{affected_object}
Error Handling and Resilience
The system includes:
- Graceful connection handling
- Signal handlers for proper shutdown
- Retry mechanisms for order processing
- Error logging and optional Sentry integration
Benefits of the STOMP Approach
- Real-time Processing: Actions are triggered immediately when events occur
- Reduced Network Traffic: No constant polling needed
- Decoupling: The agent doesn't need direct access to Waldur's database
- Scalability: Multiple agents can subscribe to different events
- Reliability: The STOMP protocol provides queue persistency to ensure message delivery and different acknowledgement options on the agent side
This event-driven architecture significantly improves the responsiveness and efficiency of the order processing system compared to traditional polling approaches.
Invitations
The invitation system in Waldur provides a mechanism for inviting users to join organizations (customers), projects, or other scoped resources with specific roles. The system supports two main invitation types: individual invitations and group invitations, with different workflows and approval mechanisms.
Architecture Overview
The invitation system is built around three core models in waldur_core.users.models:
- BaseInvitation: Abstract base class providing common fields and functionality
- Invitation: Individual invitations for specific users with email-based delivery
- GroupInvitation: Template-based invitations that can be used by multiple users matching specific criteria
- PermissionRequest: Approval workflow for group invitation requests
Invitation Types
Individual Invitations
Individual invitations are sent to specific email addresses and provide a direct mechanism to grant users access to resources.
Key Features
- Email-based delivery: Invitations are sent to specific email addresses
- Civil number validation: Optional civil number matching for enhanced security
- State management: Full lifecycle tracking with states like pending, accepted, canceled, expired
- Execution tracking: Background processing with error handling and retry capabilities
- Expiration handling: Automatic expiration based on configurable timeouts
- Webhook support: External system integration for invitation delivery
State Flow
stateDiagram-v2
[*] --> PENDING: Create invitation
[*] --> REQUESTED: Staff approval required
[*] --> PENDING_PROJECT: Project not active yet
REQUESTED --> PENDING: Staff approves
REQUESTED --> REJECTED: Staff rejects
PENDING_PROJECT --> PENDING: Project becomes active
PENDING --> ACCEPTED: User accepts
PENDING --> CANCELED: Creator cancels
PENDING --> EXPIRED: Timeout reached
CANCELED --> PENDING: Resend invitation
EXPIRED --> PENDING: Resend invitation
ACCEPTED --> [*]
REJECTED --> [*]
Group Invitations
Group invitations provide template-based access that multiple users can request to join, with an approval workflow. They support both private invitations (visible only to authenticated users with appropriate permissions) and public invitations (visible to all users including unauthenticated ones).
Key Features
- Pattern-based matching: Users can request access if they match email patterns or affiliations
- Approval workflow: Requests go through a review process before granting access
- Project creation option: Can automatically create projects instead of granting customer-level access
- Role mapping: Support for different roles at customer and project levels
- Template-based naming: Configurable project name templates for auto-created projects
- Public visibility: Public invitations can be viewed and requested by unauthenticated users
Workflow
sequenceDiagram
participant U as User
participant GI as GroupInvitation
participant PR as PermissionRequest
participant A as Approver
participant S as System
U->>GI: Submit request
GI->>PR: Create PermissionRequest
PR->>A: Notify approvers
A->>PR: Approve/Reject
alt Approved & auto_create_project
PR->>S: Create project
S->>U: Grant project permission
else Approved & normal
PR->>S: Grant scope permission
end
PR->>U: Notify result
Public Group Invitations
Public group invitations are a special type of group invitation that can be viewed and requested by unauthenticated users. They are designed for open enrollment scenarios where organizations want to allow external users to request access to projects.
Key Characteristics
- Unauthenticated visibility: Listed in public API endpoints without authentication
- Staff-only creation: Only staff users can create and manage public invitations
- Project-level access only: Public invitations can only grant project-level roles, not customer-level roles
- Automatic project creation: All public invitations must use the auto-create project feature
- Enhanced security: Authentication is still required for submitting actual access requests
Constraints and Validation
- Staff authorization: Only
is_staff=Trueusers can create public group invitations - Auto-creation required: Public invitations must have
auto_create_project=True - Project roles only: Public invitations can only use roles starting with "PROJECT." (e.g.,
PROJECT.MANAGER,PROJECT.ADMIN) - No customer-level access: Cannot grant customer-level roles like
CUSTOMER.OWNERorCUSTOMER.SUPPORT
Use Cases
- Open research projects: Universities allowing external researchers to request project access
- Community initiatives: Organizations providing project spaces for community members
- Partner collaborations: Companies offering project access to external partners
- Educational platforms: Schools providing project environments for students
API Endpoints
Individual Invitations (/api/user-invitations/)
POST /api/user-invitations/- Create invitationGET /api/user-invitations/- List invitationsGET /api/user-invitations/{uuid}/- Retrieve invitation detailsPOST /api/user-invitations/{uuid}/send/- Resend invitationPOST /api/user-invitations/{uuid}/cancel/- Cancel invitationPOST /api/user-invitations/{uuid}/accept/- Accept invitation (authenticated)POST /api/user-invitations/{uuid}/delete/- Delete invitation (staff only)POST /api/user-invitations/approve/- Approve invitation (token-based)POST /api/user-invitations/reject/- Reject invitation (token-based)POST /api/user-invitations/{uuid}/check/- Check invitation validity (unauthenticated)GET /api/user-invitations/{uuid}/details/- Get invitation details for display
Group Invitations (/api/user-group-invitations/)
POST /api/user-group-invitations/- Create group invitation (authentication required)GET /api/user-group-invitations/- List group invitations (public invitations visible without authentication)GET /api/user-group-invitations/{uuid}/- Retrieve group invitation (public invitations accessible without authentication)POST /api/user-group-invitations/{uuid}/cancel/- Cancel group invitation (authentication required)POST /api/user-group-invitations/{uuid}/submit_request/- Submit access request (authentication required)GET /api/user-group-invitations/{uuid}/projects/- List available projects (authentication required)
Permission Requests (/api/user-permission-requests/)
GET /api/user-permission-requests/- List permission requestsGET /api/user-permission-requests/{uuid}/- Retrieve permission requestPOST /api/user-permission-requests/{uuid}/approve/- Approve requestPOST /api/user-permission-requests/{uuid}/reject/- Reject request
Model Fields and Relationships
BaseInvitation (Abstract)
1 2 3 4 5 6 7 | |
Invitation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
GroupInvitation
1 2 3 4 5 6 7 8 9 10 11 12 | |
PermissionRequest
1 2 3 4 5 6 7 8 9 | |
Permission System Integration
Access Control
Invitation management permissions are controlled through:
- Staff privileges: Staff users can manage all invitations
- Scope-based permissions: Users with CREATE permissions on scopes can manage invitations
- Customer-level access: Customer owners can manage invitations for their resources
- Hierarchical permissions: Customer permissions apply to contained projects
Permission Checks
The system uses can_manage_invitation_with() utility (src/waldur_core/users/utils.py:179) for authorization:
1 2 3 4 5 6 7 8 9 10 11 | |
Filtering and Visibility
- InvitationFilterBackend: Filters invitations based on user permissions
- GroupInvitationFilterBackend: Controls group invitation visibility, allows public invitations for unauthenticated users
- PendingInvitationFilter: Filters invitations user can accept
- VisibleInvitationFilter: Controls invitation detail visibility
Background Processing
Celery Tasks
The invitation system uses several background tasks (src/waldur_core/users/tasks.py):
Core Processing Tasks
process_invitation: Main processing entry pointsend_invitation_created: Send invitation emails/webhooksget_or_create_user: Create user accounts for invitationssend_invitation_requested: Notify staff of invitation requests
Maintenance Tasks
cancel_expired_invitations: Clean up expired invitationscancel_expired_group_invitations: Clean up expired group invitationsprocess_pending_project_invitations: Activate invitations for started projectssend_reminder_for_pending_invitations: Send reminder emails
Notification Tasks
send_invitation_rejected: Notify creators of rejectionssend_mail_notification_about_permission_request_has_been_submitted: Notify approvers
Execution States
Individual invitations track background processing with FSM states:
SCHEDULED: Initial state, queued for processingPROCESSING: Currently being processedOK: Successfully processedERRED: Processing failed with error details
Error Handling
The system provides robust error tracking:
- Error messages: Human-readable error descriptions
- Error tracebacks: Full stack traces for debugging
- Retry mechanisms: Failed invitations can be resent
- Webhook failover: Falls back to email if webhooks fail
Configuration Options
Core Settings (WALDUR_CORE)
1 2 3 4 5 6 7 8 9 10 11 | |
Constance Settings
1 2 3 | |
Webhook Integration
1 2 3 4 5 6 | |
Email Templates
The system uses several email templates (waldur_core/users/templates/):
invitation_created- New invitation notificationinvitation_requested- Staff approval requestinvitation_rejected- Rejection notificationinvitation_expired- Expiration notificationinvitation_approved- Auto-created user credentialspermission_request_submitted- Permission request notification
Advanced Features
Project Auto-Creation
Group invitations can automatically create projects instead of granting customer-level access:
1 2 3 4 5 6 7 8 9 | |
Pattern Matching
Group invitations support sophisticated user matching:
1 2 3 4 5 6 7 | |
Token-Based Security
Staff approval uses cryptographically signed tokens:
1 2 3 4 5 6 | |
Security Considerations
Civil Number Validation
When civil_number is provided:
- Only users with matching civil numbers can accept invitations
- Provides additional security layer for sensitive resources
- Empty civil numbers allow any user to accept
Email Validation
Multiple levels of email validation:
- Loose matching (default): Case-insensitive email comparison
- Strict validation: Exact email matching when
ENABLE_STRICT_CHECK_ACCEPTING_INVITATION=True - Pattern matching: Group invitations validate against email patterns
Token Security
- Cryptographic signing: Uses Django's TimestampSigner
- Time-based expiration: Tokens expire after configurable period
- Payload validation: Validates UUID formats and user/invitation existence
- State verification: Ensures invitations are in correct state for operation
Permission Isolation
- Scope-based filtering: Users only see invitations they can manage
- Role validation: Ensures roles match scope content types, with additional constraints for public invitations
- Customer isolation: Prevents cross-customer invitation access
- Public invitation constraints: Public invitations restricted to project-level roles only
Best Practices
Creating Invitations
- Validate scope-role compatibility before creating invitations
- Set appropriate expiration times based on use case sensitivity
- Use civil numbers for high-security invitations
- Include helpful extra_invitation_text for user context
Group Invitation Setup
- Design clear email patterns that match intended user base
- Choose appropriate role mappings for auto-created projects
- Set meaningful project name templates for clarity
- Configure proper approval workflows with designated approvers
Public Invitation Management
- Restrict to staff users only - Only allow trusted staff to create public invitations
- Use project-level roles exclusively - Never grant customer-level access through public invitations
- Design clear project naming - Use descriptive templates since multiple projects may be created
- Monitor request volume - Public invitations may generate high volumes of access requests
- Set up proper approval processes - Ensure adequate staffing to handle public invitation approvals
Error Handling
- Monitor execution states for processing failures
- Set up alerts for invitation processing errors
- Provide clear error messages to users and administrators
- Implement retry strategies for transient failures
Performance Optimization
- Use bulk operations for large invitation batches
- Index frequently queried fields (email, state, customer)
- Archive old invitations to prevent table bloat
- Monitor background task queues for processing bottlenecks
Troubleshooting
Common Issues
- Invitations stuck in PROCESSING state
- Check Celery task processing
- Review error messages in invitation records
-
Verify SMTP/webhook configuration
-
Users can't accept invitations
- Verify email matching settings
- Check civil number requirements
-
Confirm invitation hasn't expired
-
Permission denied errors
- Validate user has CREATE permissions on scope
- Check customer-level permissions for hierarchical access
-
Confirm role is compatible with scope type
-
Group invitation requests not working
- Verify email patterns match user addresses
- Check affiliation matching logic
- Confirm invitation is still active
Debugging Tools
- Admin interface: View invitation details and states
- Celery monitoring: Track background task execution
- Logging: Enable debug logging for invitation processing
- API introspection: Use
/api/user-invitations/{uuid}/details/for status checking
Integration Examples
Basic Individual Invitation
1 2 3 4 5 6 7 8 9 10 11 | |
Group Invitation with Auto-Project
1 2 3 4 5 6 7 8 9 10 11 12 | |
Public Group Invitation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Webhook Integration
1 2 3 4 5 6 7 8 9 10 | |
This invitation system provides flexible, secure, and scalable user onboarding capabilities that integrate seamlessly with Waldur's permission and organizational structure.
Event logging
Event log entries is something an end user will see. In order to improve user experience the messages should be written in a consistent way.
Here are the guidelines for writing good log events.
- Use present perfect passive for the message.
Right: Environment %s has been created.
Wrong: Environment %s was created.
- Build a proper sentence: start with a capital letter, end with a period.
Right: Environment %s has been created.
Wrong: environment %s has been created
- Include entity names into the message string.
Right: User %s has gained role of %s in project %s.
Wrong: User has gained role in project.
- Don't include too many details into the message string.
Right: Environment %s has been updated.
Wrong: Environment has been updated with name: %s, description: %s.
- Use the name of an entity instead of its
__str__.
Right: event_logger.info('Environment %s has been updated.', env.name)
Wrong: event_logger.info('Environment %s has been updated.', env)
- Don't put quotes around names or entity types.
Right: Environment %s has been created.
Wrong: Environment "%s" has been created.
- Don't capitalize entity types.
Right: User %s has gained role of %s in project %s.
Wrong: User %s has gained Role of %s in Project %s.
- For actions that require background processing log both start of the process and its outcome.
Success flow:
-
log
Environment %s creation has been started.within HTTP request handler; -
log
Environment %s has been created.at the end of background task.
Failure flow:
-
log
Environment %s creation has been started.within HTTP request handler; -
log
Environment %s creation has failed.at the end of background task. -
For actions that can be processed within HTTP request handler log only success.
Success flow:
log User %s has been created. at the end of HTTP request handler.
Failure flow:
don't log anything, since most of the errors that could happen here are validation errors that would be corrected by user and then resubmitted.
Managed entities
Overview
Managed entities are entities for which Waldur's database is considered an authoritative source of information. By means of REST API a user defines the desired state of the entities. Waldur's jobs are then executed to make the backend (OpenStack, JIRA, etc) reflect the desired state as close as possible.
Since making changes to a backend can take a long time, they are done in background tasks.
Here's a proper way to deal with managed entities:
- within the scope of REST API request:
- introduce the change (create, delete or edit an entity) to the Waldur's database;
- schedule a background job passing instance id as a parameter;
-
return a positive HTTP response to the caller.
-
within the scope of background job:
-
fetch the entity being changed by its instance id;
- make sure that it is in a proper state (e.g. not being updated by another background job);
- transactionally update the its state to reflect that it is being updated;
- perform necessary calls to backend to synchronize changes from Waldur's database to that backend;
- transactionally update its state to reflect that it not being updated anymore.
Using the above flow makes it possible for user to get immediate feedback from an initial REST API call and then query state changes of the entity.
Managed entities operations flow
-
View receives request for entity change.
-
If request contains any data - view passes request to serializer for validation.
-
View extracts operations specific information from validated data and saves entity via serializer.
-
View starts executor with saved instance and operation specific information as input.
-
Executor handles entity states checks and transition.
-
Executor schedules celery tasks to perform asynchronous operations.
-
View returns response.
-
Tasks asynchronously call backend methods to perform required operation.
-
Callback tasks changes instance state after backend method execution.
Simplified schema of operations flow
View ---> Serializer ---> View ---> Executor ---> Tasks ---> Backend
Waldur Marketplace Module
The Waldur marketplace module provides a unified service catalog with configurable billing patterns, approval workflows, and comprehensive service orchestration. It serves as the central hub for service provisioning, order management, and billing across diverse service types.
Architecture Overview
The marketplace follows a Service Catalog → Order → Resource → Billing architecture that abstracts service complexity while providing flexible customization:
graph TB
subgraph "Service Catalog"
SP[ServiceProvider] --> O[Offering]
O --> OC[OfferingComponent]
O --> P[Plan]
P --> PC[PlanComponent]
end
subgraph "Order Processing"
Order --> Processor[OrderProcessor]
Processor --> Resource
Resource --> Endpoint[ResourceAccessEndpoint]
end
subgraph "Billing"
PC --> CU[ComponentUsage]
Resource --> CU
CU --> Invoice[Billing System]
end
Order --> Resource
O --> Order
P --> Order
Core Models
ServiceProvider: Organizations offering services through the marketplaceOffering: Service definitions with pricing, components, and configurationOfferingComponent: Individual billable items (CPU, storage, support hours, etc.)Plan: Service packages with specific pricing and resource allocationsOrder: Purchase requests that trigger resource provisioningResource: Provisioned service instances with lifecycle management
Order Lifecycle and State Management
Order States
Orders progress through a carefully managed state machine with approval workflows:
stateDiagram-v2
[*] --> PENDING_CONSUMER : Order created
PENDING_CONSUMER --> PENDING_PROVIDER : Consumer approves
PENDING_CONSUMER --> CANCELED : Consumer cancels
PENDING_CONSUMER --> REJECTED : Consumer rejects
PENDING_PROVIDER --> PENDING_PROJECT : Provider approves
PENDING_PROVIDER --> CANCELED : Provider cancels
PENDING_PROVIDER --> REJECTED : Provider rejects
PENDING_PROJECT --> EXECUTING : Project activated
PENDING_PROJECT --> CANCELED : Project issues
EXECUTING --> DONE : Processing complete
EXECUTING --> ERRED : Processing failed
DONE --> [*]
ERRED --> [*]
CANCELED --> [*]
REJECTED --> [*]
State Descriptions
| State | Description | Triggers |
|---|---|---|
| PENDING_CONSUMER | Awaiting customer approval | Order creation |
| PENDING_PROVIDER | Awaiting service provider approval | Consumer approval |
| PENDING_PROJECT | Awaiting project activation | Provider approval |
| EXECUTING | Resource provisioning in progress | Processor execution |
| DONE | Order completed successfully | Resource provisioning success |
| ERRED | Order failed with errors | Processing errors |
| CANCELED | Order canceled by user/system | User cancellation |
| REJECTED | Order rejected by provider | Provider rejection |
Resource States
Resources maintain their own lifecycle independent of orders:
stateDiagram-v2
[*] --> CREATING : Order approved
CREATING --> OK : Provisioning success
CREATING --> ERRED : Provisioning failed
OK --> UPDATING : Update requested
OK --> TERMINATING : Deletion requested
UPDATING --> OK : Update success
UPDATING --> ERRED : Update failed
TERMINATING --> TERMINATED : Deletion success
TERMINATING --> ERRED : Deletion failed
ERRED --> OK : Error resolved
ERRED --> UPDATING : Retry update
ERRED --> TERMINATING : Force deletion
TERMINATED --> [*]
Resource State Descriptions
| State | Description | Operations Allowed |
|---|---|---|
| CREATING | Resource being provisioned | Monitor progress |
| OK | Resource active and healthy | Update, delete, use |
| UPDATING | Resource being modified | Monitor progress |
| TERMINATING | Resource being deleted | Monitor progress |
| TERMINATED | Resource deleted | Archive, billing |
| ERRED | Resource in error state | Retry, investigate, delete |
Billing System
Billing Types
The marketplace supports five distinct billing patterns:
| Type | Use Case | Example | Billing Trigger |
|---|---|---|---|
| FIXED | Monthly subscriptions, SaaS plans | $50/month hosting | Service provider sets price |
| USAGE | Pay-as-you-consume | $0.10/GB storage used | Usage reports submitted |
| LIMIT | Resource quotas with different periods | $5/CPU core allocated monthly $150/500GB quarterly storage |
User specifies limits |
| ONE_TIME | Setup fees, licenses | $100 installation | Resource activation |
| ON_PLAN_SWITCH | Plan change fees | $25 upgrade fee | Plan modifications |
Component Architecture
Each offering consists of billable components with independent pricing:
graph LR
subgraph "Offering: Cloud VM"
C1[CPU Cores<br/>LIMIT billing]
C2[RAM GB<br/>LIMIT billing]
C3[Storage GB<br/>USAGE billing]
C4[Network Traffic<br/>USAGE billing]
C5[Management Fee<br/>FIXED billing]
end
subgraph "User Order"
L1[4 CPU cores]
L2[8 GB RAM]
L3[Unlimited storage]
L4[Unlimited network]
L5[1x management]
end
C1 --> L1
C2 --> L2
C3 --> L3
C4 --> L4
C5 --> L5
Limit Periods
For USAGE and LIMIT billing types, components can have consumption limits with different billing cycles:
- MONTHLY: Reset limits every month (e.g., 100 GB storage/month)
- QUARTERLY: Reset limits every quarter (e.g., 300 GB storage/quarter)
- ANNUAL: Reset limits yearly (e.g., 1000 CPU hours/year)
- TOTAL: Lifetime limits (e.g., 10 TB total storage)
Quarterly Billing Implementation
The QUARTERLY limit period provides specialized billing logic for resources that need to be billed on a quarterly cycle:
Billing Schedule: Quarterly components are only processed during the first month of each quarter:
- Q1: January (months 1-3)
- Q2: April (months 4-6)
- Q3: July (months 7-9)
- Q4: October (months 10-12)
Billing Period Calculation: When quarterly billing is triggered, the system:
- Calculates the full quarter period (e.g., Q2: April 1 - June 30)
- Creates invoice items with quarterly billing periods instead of monthly
- Uses
PER_QUARTERunit for quantity calculations - Applies prorated billing for partial quarters when limits change
Quarter Period Utilities: The system provides utility functions for quarter calculations:
get_current_quarter(): Returns current quarter (1-4)get_current_quarter_start(): Start of current quarterget_current_quarter_end(): End of current quarterget_quarter_start(date): Start of quarter for given dateget_quarter_end(date): End of quarter for given dateget_full_quarters(start, end): Calculate quarters between dates
Usage Examples:
1 2 3 4 5 6 7 8 9 10 11 12 | |
MarketplaceRegistrator QUARTERLY Logic
The MarketplaceRegistrator class implements sophisticated quarterly billing logic in the following methods:
should_process_quarterly_billing(date): Determines when quarterly billing should be processed
1 2 3 | |
get_quarterly_billing_period(date): Calculates the complete quarterly period
1 2 3 4 5 | |
get_period_end_for_limit_period(limit_period): Returns appropriate period end
1 2 3 4 5 | |
Invoice Item Creation: The registrator handles quarterly components differently:
- During
_create_item(): - Skips processing in non-quarterly months for QUARTERLY components
- Uses full quarterly periods instead of monthly periods
-
Creates invoice items spanning entire quarters
-
During
create_or_update_component_item(): - Uses quarterly billing periods for new QUARTERLY components
-
Handles limit changes with appropriate quarter calculations
-
Quantity Calculation:
- Uses
PER_QUARTERunit fromcommon.enums.Units - Leverages
get_full_quarters(start, end)for period calculations - Supports prorated billing for partial quarterly periods
Limit Update Handling: When resource limits change for quarterly components:
- Updates existing invoice items with new quarterly periods
- Creates compensation items for limit decreases (negative unit_price)
- Maintains detailed
resource_limit_periodsin invoice item details
This implementation ensures that quarterly billing:
- Only occurs during appropriate months (January, April, July, October)
- Covers full quarterly periods for accurate billing
- Handles mid-quarter limit changes with proper prorating
- Integrates seamlessly with the existing monthly billing infrastructure
Processor Architecture
Processors handle service-specific provisioning logic while maintaining consistent interfaces:
Base Processor Classes
1 2 3 4 5 6 7 8 | |
Processor Flow
sequenceDiagram
participant U as User
participant O as Order
participant P as Processor
participant B as Backend
participant R as Resource
U->>O: Create order
O->>P: validate_order()
Note over O: Approval workflow
O->>P: process_order()
P->>B: Provision resource
B-->>P: Backend ID/metadata
P->>R: Create resource
P->>R: Set endpoints
P-->>O: Processing complete
Realistic Service Examples
1. Cloud Infrastructure (OpenStack)
Service Type: Virtual private cloud with compute, storage, networking Billing Pattern: Limit-based quotas + usage-based consumption
1 2 3 4 5 6 7 8 9 10 11 12 | |
Components:
- CPU cores (limit-based, monthly reset)
- RAM GB (limit-based, monthly reset)
- Storage GB (usage-based, pay per GB used)
- Network traffic (usage-based, pay per GB transferred)
2. Managed Kubernetes (Rancher)
Service Type: Fully managed Kubernetes with infrastructure orchestration Billing Pattern: Aggregated billing across multiple resources
1 2 3 4 5 6 7 | |
Components:
- Worker node hours (usage-based)
- Master node (fixed monthly)
- Load balancer (fixed monthly)
- Storage volumes (limit-based, total)
- Management fee (fixed monthly)
3. HPC Compute Allocation (SLURM)
Service Type: High-performance computing resource allocation Billing Pattern: Time-limited resource quotas
1 2 3 4 5 6 | |
Components:
- CPU hours (limit-based, annual reset)
- GPU hours (limit-based, annual reset)
- Storage quota (limit-based, total)
- Priority queue access (one-time fee)
4. Enterprise Software Licensing
Service Type: Enterprise software with quarterly billing cycles Billing Pattern: Quarterly licensing with flexible user limits
1 2 3 4 5 6 7 8 9 10 11 | |
Components:
- User licenses (limit-based, quarterly reset)
- Admin seats (limit-based, quarterly reset)
- Support hours (limit-based, quarterly reset)
- Implementation services (one-time fee)
- Training licenses (usage-based, quarterly reporting)
Advanced Features
Resource Access Endpoints
Resources can expose multiple access points:
1 2 3 4 5 6 | |
Backend Metadata
Processors can store service-specific metadata:
1 2 3 4 5 6 | |
Approval Workflows
The marketplace implements intelligent approval workflows that automatically determine when manual approval is required based on order characteristics, user permissions, and offering configuration.
Order Approval Logic Flow
flowchart TD
A[Order Created] --> B{Consumer Approval Required?}
B -->|Yes| C[PENDING_CONSUMER]
B -->|No| D{Project Start Date Set?}
C --> E[Consumer Reviews] --> D
D -->|Yes| F[PENDING_PROJECT]
D -->|No| G{Provider Approval Required?}
F --> H[Project Activated] --> G
G -->|Yes| I[PENDING_PROVIDER]
G -->|No| J[EXECUTING]
I --> K[Provider Reviews] --> J
J --> L[Order Processing]
Consumer Approval Rules
Consumer approval is skipped when any of these conditions are met:
| Condition | Requirements | Implementation |
|---|---|---|
| Staff User | Order created by staff user | user.is_staff == True |
| Private Offering | User has project-level approval permission | has_permission(APPROVE_PRIVATE_ORDER, project) |
| Same Organization Auto-Approval | Public offering with auto-approval enabled | offering.shared && offering.customer == project.customer && auto_approve_in_service_provider_projects == True |
| Termination by Service Provider | Service provider owner terminating resource | order.type == TERMINATE && has_owner_access(user, offering.customer) |
| Project Permission | User has order approval permission | has_permission(APPROVE_ORDER, project) |
Provider Approval Rules
Provider approval is skipped for specific offering types and conditions:
| Offering Type | Auto-Approval Logic |
|---|---|
| Basic Offerings | Always require manual approval (BASIC_PLUGIN_NAME) |
| Site Agent | Always require manual approval (SITE_AGENT_PLUGIN_NAME) |
| Remote Offerings | Skip if: auto_approve_remote_orders OR user is service provider owner/manager |
| All Other Types | Always skip approval (auto-approve) |
Remote Offering Approval Logic
For remote marketplace offerings, approval is skipped when:
1 2 3 4 5 6 7 | |
Project Approval Rules
Project approval occurs when:
- Project Start Date: Project has a future
start_dateset - Orders wait in
PENDING_PROJECTstate until project is activated - When
start_dateis cleared, pending orders automatically proceed
Approval Workflow Handler
The approval logic is implemented in notify_approvers_when_order_is_created handler:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Notification System
The system automatically notifies relevant approvers:
- Consumer Notifications: Project managers, customer owners with
APPROVE_ORDERpermission - Provider Notifications: Service provider staff, offering managers
- Staff Notifications: Optional staff notifications via
NOTIFY_STAFF_ABOUT_APPROVALSsetting
Configuration Options
Approval behavior can be customized through offering plugin_options:
1 2 3 4 | |
This intelligent approval system ensures that:
- Routine operations (staff actions, same-org requests) skip unnecessary approvals
- High-risk operations (external requests, termination) require appropriate review
- Complex workflows (remote offerings, delayed projects) handle edge cases gracefully
- Notification fatigue is minimized through targeted approver selection
Error Handling and Rollback
1 2 3 4 5 6 7 8 9 | |
Integration Patterns
Synchronous Processing
For simple, fast operations:
1 2 3 | |
Asynchronous Processing
For complex, long-running operations:
1 2 3 | |
External API Integration
1 2 3 4 | |
OfferingUser States and Management
OfferingUser represents a user account created for a specific marketplace offering. It supports a finite state machine (FSM) that tracks the lifecycle of user account creation, validation, and management.
States
OfferingUser has the following states:
| State | Description |
|---|---|
CREATION_REQUESTED |
Initial state when user account creation is requested |
CREATING |
Account is being created by the service provider |
PENDING_ACCOUNT_LINKING |
Waiting for user to link their existing account |
PENDING_ADDITIONAL_VALIDATION |
Requires additional validation from service provider |
OK |
Account is active and ready to use |
DELETION_REQUESTED |
Account deletion has been requested |
DELETING |
Account is being deleted |
DELETED |
Account has been successfully deleted |
ERROR_CREATING |
An error occurred during account creation |
ERROR_DELETING |
An error occurred during account deletion |
State Transitions
stateDiagram-v2
[*] --> CREATION_REQUESTED : Account requested
CREATION_REQUESTED --> CREATING : begin_creating()
CREATION_REQUESTED --> OK : set_ok()
CREATING --> PENDING_ACCOUNT_LINKING : set_pending_account_linking()
CREATING --> PENDING_ADDITIONAL_VALIDATION : set_pending_additional_validation()
CREATING --> OK : set_ok()
PENDING_ACCOUNT_LINKING --> OK : set_validation_complete()
PENDING_ADDITIONAL_VALIDATION --> OK : set_validation_complete()
OK --> DELETION_REQUESTED : request_deletion()
DELETION_REQUESTED --> DELETING : set_deleting()
DELETING --> DELETED : set_deleted()
%% Error state transitions during creation flow
CREATION_REQUESTED --> ERROR_CREATING : set_error_creating()
CREATING --> ERROR_CREATING : set_error_creating()
PENDING_ACCOUNT_LINKING --> ERROR_CREATING : set_error_creating()
PENDING_ADDITIONAL_VALIDATION --> ERROR_CREATING : set_error_creating()
%% Error state transitions during deletion flow
DELETION_REQUESTED --> ERROR_DELETING : set_error_deleting()
DELETING --> ERROR_DELETING : set_error_deleting()
%% Recovery from error states
ERROR_CREATING --> CREATING : begin_creating()
ERROR_CREATING --> OK : set_ok()
ERROR_CREATING --> PENDING_ACCOUNT_LINKING : set_pending_account_linking()
ERROR_CREATING --> PENDING_ADDITIONAL_VALIDATION : set_pending_additional_validation()
ERROR_DELETING --> DELETING : set_deleting()
ERROR_DELETING --> OK : set_ok()
%% Legacy error transitions (backward compatibility)
CREATION_REQUESTED --> ERROR_CREATING : set_error() [legacy]
CREATING --> ERROR_CREATING : set_error() [legacy]
PENDING_ACCOUNT_LINKING --> ERROR_CREATING : set_error() [legacy]
PENDING_ADDITIONAL_VALIDATION --> ERROR_CREATING : set_error() [legacy]
OK --> ERROR_CREATING : set_error() [legacy]
DELETION_REQUESTED --> ERROR_CREATING : set_error() [legacy]
DELETING --> ERROR_CREATING : set_error() [legacy]
REST API Endpoints
State Transition Actions
All state transition endpoints require UPDATE_OFFERING_USER permission and are accessed via POST to the offering user detail endpoint with the action suffix.
Base URL: /api/marketplace-offering-users/{uuid}/
Set Pending Additional Validation
1 2 3 4 5 6 7 | |
Valid transitions from: CREATING, ERROR_CREATING
Set Pending Account Linking
1 2 3 4 5 6 7 | |
Valid transitions from: CREATING, ERROR_CREATING
Set Validation Complete
1 | |
Valid transitions from: PENDING_ADDITIONAL_VALIDATION, PENDING_ACCOUNT_LINKING
Note: This action clears both the service_provider_comment and service_provider_comment_url fields.
Set Error Creating
1 | |
Valid transitions from: CREATION_REQUESTED, CREATING, PENDING_ACCOUNT_LINKING, PENDING_ADDITIONAL_VALIDATION
Sets the user account to error state during the creation process. Used when creation operations fail.
Set Error Deleting
1 | |
Valid transitions from: DELETION_REQUESTED, DELETING
Sets the user account to error state during the deletion process. Used when deletion operations fail.
Begin Creating
1 | |
Valid transitions from: CREATION_REQUESTED, ERROR_CREATING
Initiates the account creation process. Can be used to retry creation after an error.
Request Deletion
1 | |
Valid transitions from: OK
Initiates the account deletion process. Moves the user from active status to deletion requested.
Set Deleting
1 | |
Valid transitions from: DELETION_REQUESTED, ERROR_DELETING
Begins the account deletion process. Can be used to retry deletion after an error.
Set Deleted
1 | |
Valid transitions from: DELETING
Marks the user account as successfully deleted. This is the final state for successful account deletion.
Service Provider Comment Management
Update Comments
Service providers can directly update comment fields without changing the user's state:
1 2 3 4 5 6 7 | |
Permissions: Requires UPDATE_OFFERING_USER permission on the offering's customer.
Valid states: All states except DELETED
Both fields are optional - you can update just the comment, just the URL, or both.
OfferingUser Fields
When retrieving or updating OfferingUser objects, the following state-related fields are available:
state(string, read-only): Current state of the user accountservice_provider_comment(string, read-only): Comment from service provider for pending statesservice_provider_comment_url(string, read-only): Optional URL link for additional information or actions related to the service provider comment
Backward Compatibility
The system maintains backward compatibility with existing integrations:
Automatic State Transitions
- Username Assignment: When a username is assigned to an OfferingUser (via API or
set_offerings_username), the state automatically transitions toOK - Creation with Username: Creating an OfferingUser with a username immediately sets the state to
OK
Legacy Endpoints
POST /api/marketplace-service-providers/{uuid}/set_offerings_username/- Bulk username assignment that automatically transitions users toOKstate
Legacy Error State Support
For backward compatibility with existing integrations:
set_error()method: The legacyset_error()method still exists and defaults toERROR_CREATINGstate
New integrations should use the specific error states (ERROR_CREATING, ERROR_DELETING) for better error context.
Usage Examples
Service Provider Workflow
Standard Creation Flow
- Initial Creation: OfferingUser is created with state
CREATION_REQUESTED - Begin Processing: Transition to
CREATINGstate - Require Validation: If additional validation needed, transition to
PENDING_ADDITIONAL_VALIDATIONwith explanatory comment and optional URL - Complete Validation: Once validated, transition to
OKstate - Account Ready: User can now access the service
Enhanced Workflow with Comment URLs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
Error Handling and Recovery
1 2 3 4 5 6 7 8 9 10 11 | |
Account Deletion Workflow
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Permissions
State transition endpoints use the permission_factory pattern with:
- Permission:
UPDATE_OFFERING_USER - Scope:
["offering.customer"]- User must have permission on the offering's customer
This means users need the UPDATE_OFFERING_USER permission on the customer that owns the offering associated with the OfferingUser.
Filtering OfferingUsers
The OfferingUser list endpoint supports filtering by state to help manage users across different lifecycle stages.
State Filtering
Filter OfferingUsers by their current state using the state query parameter:
1 2 | |
Available State Filter Values
| Filter Value | State Constant | Description |
|---|---|---|
Requested |
CREATION_REQUESTED |
Users with account creation requested |
Creating |
CREATING |
Users whose accounts are being created |
Pending account linking |
PENDING_ACCOUNT_LINKING |
Users waiting to link existing accounts |
Pending additional validation |
PENDING_ADDITIONAL_VALIDATION |
Users requiring additional validation |
OK |
OK |
Users with active, ready-to-use accounts |
Requested deletion |
DELETION_REQUESTED |
Users with deletion requested |
Deleting |
DELETING |
Users whose accounts are being deleted |
Deleted |
DELETED |
Users with successfully deleted accounts |
Error creating |
ERROR_CREATING |
Users with errors during account creation |
Error deleting |
ERROR_DELETING |
Users with errors during account deletion |
Multiple State Filtering
Filter by multiple states simultaneously:
1 2 | |
Combining with Other Filters
State filtering can be combined with other available filters:
1 2 3 4 5 6 7 8 | |
Error Handling
Invalid state values return HTTP 400 Bad Request:
1 2 | |
Other Available Filters
The OfferingUser list endpoint also supports these filters:
offering_uuid- Filter by offering UUIDuser_uuid- Filter by user UUIDuser_username- Filter by user's username (case-insensitive)provider_uuid- Filter by service provider UUIDis_restricted- Filter by restriction status (boolean)created_before/created_after- Filter by creation datemodified_before/modified_after- Filter by modification datequery- General search across offering name, username, and user names
Practical Filtering Examples
Here are common filtering scenarios for managing OfferingUsers:
Find Users Requiring Attention
1 2 3 4 5 6 7 8 9 10 11 | |
Monitor Service Provider Operations
1 2 3 4 5 | |
Audit and Reporting
1 2 3 4 5 | |
Events and Logging
State transitions generate:
- Event logs: Recorded in the system event log for audit purposes
- Application logs: Logged with user attribution for debugging and monitoring
Role-based Access Control (RBAC)
Overview
Waldur implements a comprehensive Role-Based Access Control (RBAC) system that determines what actions users can perform within the platform. The authorization system consists of three core components:
- Permissions - Unique strings that designate specific actions (e.g.,
OFFERING.CREATE,PROJECT.UPDATE) - Roles - Named collections of permissions (e.g.,
CUSTOMER.OWNER,PROJECT.ADMIN) - User Roles - Assignments linking users to roles within specific scopes
This functionality is implemented in the waldur_core.permissions application and provides fine-grained access control across all platform resources.
First thing to remember is to use PermissionEnum to define permissions instead of using plain string or standalone named constant, otherwise they would not be pushed to frontend.
1 2 3 4 5 | |
Next, let's assign that permissions to role.
1 2 3 4 5 6 | |
Now, let's assign customer owner role to particular user and customer:
1 2 3 4 5 6 7 8 | |
Finally, we can check whether user is allowed to create offering in particular organization.
1 2 3 4 | |
Please note that this function accepts not only customer, but also project and offering as a scope. Consider these models as authorization aggregates. Other models, such as resources and orders, should refer to these aggregates to perform authorization check. For example:
1 | |
Core Concepts
Authorization Scopes
Waldur supports multiple authorization scopes, each representing a different organizational level:
| Scope Type | Model | Description |
|---|---|---|
| Customer | structure.Customer |
Organization-level permissions |
| Project | structure.Project |
Project-level permissions within an organization |
| Offering | marketplace.Offering |
Service offering permissions |
| Service Provider | marketplace.ServiceProvider |
Provider-level permissions |
| Call | proposal.Call |
Call for proposals permissions |
| Proposal | proposal.Proposal |
Individual proposal permissions |
System Roles
The platform includes several predefined system roles:
Customer Roles
CUSTOMER.OWNER- Full control over the organizationCUSTOMER.SUPPORT- Support access to organization resourcesCUSTOMER.MANAGER- Management capabilities for service providers
Project Roles
PROJECT.ADMIN- Full project administrationPROJECT.MANAGER- Project management capabilitiesPROJECT.MEMBER- Basic project member access
Offering Roles
OFFERING.MANAGER- Manage marketplace offerings
Call/Proposal Roles
CALL.REVIEWER- Review proposals in callsCALL.MANAGER- Manage calls for proposalsPROPOSAL.MEMBER- Proposal team memberPROPOSAL.MANAGER- Proposal management
Role Features
Time-based Roles
Roles can have expiration times, allowing for temporary access:
1 2 3 4 5 6 7 8 9 10 | |
Role Revocation
Roles can be explicitly revoked before expiration:
1 2 3 4 5 6 7 8 | |
Migration example
Previously we have relied on hard-coded roles, such as customer owner and project manager. Migration to dynamic roles on backend is relatively straightforward process. Consider the following example.
1 2 | |
As you may see, we have relied on selectors with hard-coded roles. The main drawback of this approach is that it is very hard to inspect who can do what without reading all source code. And it is even hard to adjust this behaviour. Contrary to its name, by using dynamic roles we don't need to care much about roles though.
1 2 3 4 5 6 7 | |
Here we use permission_factory function which accepts permission string and list of paths to scopes, either customer, project or offering. It returns function which accepts request and raises an exception if user doesn't have specified permission in roles connected to current user and one of these scopes.
Permissions for viewing
Usually it is implemented filter backend, such as GenericRoleFilter, which in turn uses get_connected_customers and get_connected_projects function because customer and project are two main permission aggregates.
1 2 3 4 5 6 | |
Although this approach works fine for trivial use cases, often enough permission filtering logic is more involved and we implement get_queryset method instead.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Permissions for object creation and update
Usually it is done in serializer's validate method.
1 2 3 4 5 6 7 8 9 10 | |
Permission Checking Utilities
Core Functions
has_permission(request, permission, scope)
Checks if a user has a specific permission in a given scope:
1 2 3 4 5 6 7 | |
Note: Staff users automatically pass all permission checks.
permission_factory(permission, sources=None)
Creates a permission checker function for use in ViewSets:
1 2 3 4 5 6 7 8 9 10 | |
The sources parameter specifies paths to traverse from the current object to find the scope.
User and Role Management
Getting Users with Roles
1 2 3 4 5 6 7 8 9 10 | |
Managing User Roles
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
Filtering by Permissions
Using get_connected_customers and get_connected_projects
These functions return all customers/projects where the user has any role:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Permission Categories
Offering Permissions
| Permission | Description |
|---|---|
OFFERING.CREATE |
Create new offerings |
OFFERING.UPDATE |
Update offering details |
OFFERING.DELETE |
Delete offerings |
OFFERING.PAUSE/UNPAUSE |
Control offering availability |
OFFERING.MANAGE_USER_GROUP |
Manage offering user groups |
Resource Permissions
| Permission | Description |
|---|---|
RESOURCE.TERMINATE |
Terminate resources |
RESOURCE.SET_USAGE |
Report resource usage |
RESOURCE.SET_LIMITS |
Update resource limits |
RESOURCE.SET_STATE |
Change resource state |
Order Permissions
| Permission | Description |
|---|---|
ORDER.LIST |
View orders |
ORDER.APPROVE |
Approve orders |
ORDER.REJECT |
Reject orders |
ORDER.CANCEL |
Cancel orders |
Project/Customer Permissions
| Permission | Description |
|---|---|
PROJECT.CREATE |
Create projects |
PROJECT.UPDATE |
Update project details |
PROJECT.DELETE |
Delete projects |
CUSTOMER.CREATE |
Create customers |
CUSTOMER.UPDATE |
Update customer details |
Best Practices
1. Always Use PermissionEnum
Define permissions in PermissionEnum to ensure they're properly registered and available to the frontend:
1 2 3 4 5 6 | |
2. Use Appropriate Scopes
Choose the right scope for permission checks:
1 2 3 4 5 6 7 8 | |
3. Implement Proper Permission Chains
When checking permissions on nested resources, traverse to the appropriate scope:
1 2 3 4 5 | |
4. Use Filter Backends for List Views
For list endpoints, use GenericRoleFilter or implement custom filtering:
1 2 | |
5. Audit Role Changes
Role changes are automatically logged via signals (role_granted, role_updated, role_revoked) with enhanced context including initiator and reason. Always pass current_user and optional reason for clear audit trails:
1 2 3 4 5 6 7 | |
Enhanced Logging Context
All role change logs now include:
initiated_by: Shows either "System" (for automatic operations) or "User Name (username)" (for manual operations)reason: Specific reason for the change, with automatic defaults:- Manual API operations:
"Manual role assignment/removal/update via API" - Automatic expiration:
"Automatic expiration"or"Automatic expiration cleanup task" - Project deletion:
"Project deletion cascade" - Scope changes:
"Project moved to different customer","Offering moved to different provider"
Common Automatic Reasons
The system automatically assigns these reasons when not explicitly provided:
| Scenario | Default Reason |
|---|---|
API user operations with current_user |
"Manual [operation] via API" |
| Expiration task | "Automatic expiration cleanup task" |
| Project deletion | "Project deletion cascade" |
| Role expiration detection | "Automatic expiration" |
System operations without current_user |
"System-initiated [operation]" |
6. Performance and Accuracy Guidelines
Exact User Counting
When counting users across roles, always use exact calculations to avoid double-counting users with multiple roles:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Query Optimization
Use Django ORM efficiently for permission-related queries:
1 2 3 4 5 6 7 8 | |
Error Handling Best Practices
Handle edge cases gracefully in permission checking:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
7. Time-based Role Best Practices
Default Parameter Behavior
The has_user function has specific behavior for the expiration_time parameter:
1 2 3 4 5 6 7 8 9 | |
API Design Consistency
When designing permission-related APIs:
- Default parameters should match the most common use case
- Error types should be consistent:
AttributeErrorfor configuration/code errors (invalid attribute paths)PermissionDeniedfor access control failuresValidationErrorfor user input errors
Testing and Debugging Permissions
Testing Permission Logic
When writing tests for permission functionality:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
Performance Testing
Monitor query counts for permission-related operations:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Debugging Permission Issues
When debugging permission problems:
- Check role assignments:
1 2 3 | |
- Verify permission assignments:
1 2 3 4 | |
- Test permission paths:
1 2 3 4 5 6 7 8 | |
- Enable verbose logging:
1 2 | |
Common Issues and Solutions
Issue: User count approximations
Problem: Double-counting users with multiple roles
Solution: Always use distinct() on user_id when counting across multiple role assignments
Issue: Permission factory AttributeError
Problem: Invalid attribute paths in permission_factory sources
Solution: Verify object relationships and use try/catch for graceful error handling
Issue: Performance degradation in role filtering
Problem: N+1 queries when checking permissions for many objects
Solution: Use select_related() and prefetch_related() to optimize database queries
Issue: Time-based role confusion
Problem: Unclear behavior of has_user with different expiration_time parameters
Solution: Understand the three modes:
expiration_time=False(default): Any active roleexpiration_time=None: Only permanent rolesexpiration_time=datetime: Roles active at specific time
Waldur Proposal Module
The Waldur proposal module provides a comprehensive research proposal management system that enables institutions to manage competitive resource allocation through structured calls for proposals, peer review processes, and automated resource provisioning.
Architecture Overview
The proposal system follows a Call → Round → Proposal → Review → Allocation architecture that handles the complete lifecycle from call publication to resource delivery:
graph TB
subgraph "Call Management"
CMO[CallManagingOrganisation] --> C[Call]
C --> RO[RequestedOffering]
C --> CRT[CallResourceTemplate]
CD[CallDocument] --> C
end
subgraph "Submission Process"
C --> R[Round]
R --> P[Proposal]
P --> RR[RequestedResource]
P --> PD[ProposalDocumentation]
P --> MP[Waldur Project]
end
subgraph "Review System"
P --> REV[Review]
REV --> RC[ReviewComment]
U[User/Reviewer] --> REV
end
subgraph "Resource Allocation"
P --> RA[ResourceAllocator]
RR --> MR[Marketplace Resource]
RA --> MR
PPRM[ProposalProjectRoleMapping] --> MP
end
Core Models
CallManagingOrganisation: Organizations that create and manage calls for proposalsCall: Main entity representing calls with configuration for review settings and durationRound: Time-bounded submission periods with configurable review and allocation strategiesProposal: Individual proposals with project details and resource requestsRequestedResource: Specific resource requests within proposals linked to marketplaceReview: Peer review system with scoring, comments, and field-specific feedback
Call Lifecycle and State Management
Call States
Calls progress through a simple but effective state machine:
stateDiagram-v2
[*] --> DRAFT : Call created
DRAFT --> ACTIVE : Call published
DRAFT --> ARCHIVED : Call canceled
ACTIVE --> ARCHIVED : Call completed
ARCHIVED --> [*]
Call State Descriptions
| State | Description | Operations Allowed |
|---|---|---|
| DRAFT | Call being prepared by organization | Edit call details, add rounds, configure offerings |
| ACTIVE | Call open for submissions | Submit proposals, manage reviews, allocate resources |
| ARCHIVED | Call completed or canceled | View historical data, generate reports |
Proposal States
Proposals follow a comprehensive lifecycle with review integration:
stateDiagram-v2
[*] --> DRAFT : Proposal created
DRAFT --> SUBMITTED : Submitter ready
DRAFT --> CANCELED : Submitter cancels
SUBMITTED --> IN_REVIEW : Review process starts
SUBMITTED --> CANCELED : Admin cancels
IN_REVIEW --> ACCEPTED : Positive review outcome
IN_REVIEW --> REJECTED : Negative review outcome
IN_REVIEW --> CANCELED : Process canceled
ACCEPTED --> [*] : Resources allocated
REJECTED --> [*] : Process complete
CANCELED --> [*] : Process terminated
Proposal State Descriptions
| State | Description | Triggers | Actions Available |
|---|---|---|---|
| DRAFT | Proposal being prepared | User creation | Edit, add resources, upload docs |
| SUBMITTED | Proposal submitted for review | User submission | View, withdraw |
| IN_REVIEW | Under review by experts | System/admin trigger | Review, comment, score |
| ACCEPTED | Approved for resource allocation | Review completion | Allocate resources, create project |
| REJECTED | Declined after review | Review completion | View feedback, appeal |
| CANCELED | Withdrawn or administratively canceled | User/admin action | Archive |
Review States
Reviews maintain independent state for tracking progress:
stateDiagram-v2
[*] --> CREATED : Review assigned
CREATED --> IN_REVIEW : Reviewer starts
CREATED --> REJECTED : Reviewer declines
IN_REVIEW --> SUBMITTED : Review completed
IN_REVIEW --> REJECTED : Reviewer withdraws
SUBMITTED --> [*] : Review processed
REJECTED --> [*] : Assignment ended
Round Management and Strategies
Review Strategies
Rounds can be configured with different review timing approaches:
| Strategy | Description | Use Case | Workflow |
|---|---|---|---|
| AFTER_ROUND | Reviews start after submission deadline | Large competitive calls | All proposals collected → batch review assignment |
| AFTER_PROPOSAL | Reviews start immediately upon submission | Rolling submissions | Individual proposal → immediate review assignment |
Allocation Strategies
Resource allocation can be automated or manual:
| Strategy | Description | Decision Maker | Allocation Logic |
|---|---|---|---|
| BY_CALL_MANAGER | Manual allocation by call administrators | Human reviewers | Call manager reviews scores and allocates |
| AUTOMATIC | Automated based on review scores | System algorithm | Automatic allocation above score threshold |
Round Configuration
graph LR
subgraph "Round Configuration"
ST[Start Time] --> CT[Cutoff Time]
CT --> RD[Review Duration]
RD --> MR[Min Reviewers]
MR --> MS[Min Score]
MS --> AD[Allocation Date]
end
subgraph "Strategies"
RS[Review Strategy:<br/>AFTER_ROUND/<br/>AFTER_PROPOSAL]
AS[Allocation Strategy:<br/>BY_CALL_MANAGER/<br/>AUTOMATIC]
AT[Allocation Time:<br/>ON_DECISION/<br/>FIXED_DATE]
end
Resource Template System
Template Architecture
Call resource templates standardize resource requests across proposals:
graph TB
subgraph "Template Definition"
C[Call] --> CRT[CallResourceTemplate]
RO[RequestedOffering] --> CRT
CRT --> A[Attributes JSON]
CRT --> L[Limits JSON]
CRT --> REQ[Is Required]
end
subgraph "Proposal Usage"
P[Proposal] --> RR[RequestedResource]
CRT --> RR
RR --> PA[Proposal Attributes]
RR --> PL[Proposal Limits]
end
subgraph "Validation"
CRT --> V[Template Validation]
RR --> V
V --> MR[Marketplace Resource]
end
Template Configuration Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Review System Architecture
Review Assignment
The system supports flexible reviewer assignment strategies:
sequenceDiagram
participant R as Round
participant P as Proposal
participant RM as ReviewManager
participant Rev as Reviewer
participant N as NotificationSystem
Note over R: Review Strategy Check
alt After Round Strategy
R->>R: Cutoff time reached
R->>RM: Assign reviewers to all proposals
else After Proposal Strategy
P->>P: State changed to SUBMITTED
P->>RM: Assign reviewers immediately
end
RM->>Rev: Create review assignments
RM->>N: Notify assigned reviewers
Rev->>Rev: Complete reviews
RM->>RM: Aggregate review results
Review Scoring System
Reviews include comprehensive scoring and feedback:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Review Visibility Configuration
Calls can configure review transparency:
| Setting | Description | Impact |
|---|---|---|
reviewer_identity_visible_to_submitters |
Whether submitters see reviewer names | False: Shows "Reviewer 1", "Reviewer 2" |
reviews_visible_to_submitters |
Whether submitters see review details | False: Only final decision visible |
Integration with Waldur Marketplace
Resource Provisioning Flow
Accepted proposals automatically trigger marketplace resource creation:
sequenceDiagram
participant P as Proposal
participant RA as ResourceAllocator
participant MP as Marketplace
participant R as Resource
participant Proj as Project
P->>P: State changed to ACCEPTED
P->>RA: Create allocator
RA->>MP: Create marketplace order
MP->>R: Provision resources
R->>Proj: Link to proposal project
Note over Proj: Automatic role mapping
RA->>Proj: Apply ProposalProjectRoleMapping
Role Mapping System
The ProposalProjectRoleMapping enables automatic role assignment:
1 2 3 4 5 6 | |
When proposals are accepted:
- System identifies users with proposal roles
- Automatically assigns corresponding project roles
- Users gain appropriate project permissions
- Resources become accessible immediately
Realistic Usage Examples
1. Academic HPC Resource Allocation
Use Case: University research computing center allocating CPU hours
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | |
Workflow:
- Researchers submit proposals with resource requests
- Expert reviewers evaluate scientific merit
- Proposals scoring ≥7.0 automatically receive allocations
- HPC accounts created with specified limits
- Usage tracked through marketplace billing
2. Cloud Infrastructure Grant Program
Use Case: Government agency providing cloud resources for research
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | |
Workflow:
- Research teams submit project proposals
- Panel review with domain experts
- Program managers manually select winning proposals
- Resources allocated on fixed quarterly dates
- Multi-year projects supported with renewal process
3. Startup Incubator Resource Program
Use Case: Accelerator providing development resources to startups
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | |
Workflow:
- Startups apply continuously throughout year
- Industry mentors review applications within 14 days
- Incubator staff make acceptance decisions
- Resources provisioned immediately upon acceptance
- 6-month duration with renewal option
Compliance Checklist Integration
Optional Compliance Requirements
Calls can optionally include compliance checklists that proposals must complete before submission. This feature integrates with the marketplace checklist system to ensure regulatory or institutional compliance requirements are met.
graph TB
subgraph "Compliance Flow"
C[Call] --> CC[Compliance Checklist]
CC --> P[Proposal]
P --> PCC[ProposalChecklistCompletion]
PCC --> PCA[ProposalChecklistAnswer]
PCA --> VS[Validation & Submission]
end
subgraph "Question Types"
CC --> BQ[Boolean Questions]
CC --> TQ[Text Questions]
CC --> SQ[Select Questions]
CC --> DQ[Date Questions]
end
subgraph "Review Triggers"
PCA --> RT[Review Triggers]
RT --> CMR[Call Manager Review]
CMR --> A[Approval/Comments]
end
Compliance Checklist Configuration
Call managers can assign compliance checklists when creating or editing calls:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
Automatic Checklist Assignment
When proposals are created for calls with compliance checklists, completion tracking is automatically initialized:
sequenceDiagram
participant U as User
participant P as Proposal
participant S as Signal Handler
participant PCC as ProposalChecklistCompletion
U->>P: Create proposal
P->>P: Save to database
P->>S: Trigger post_save signal
alt Call has compliance checklist
S->>PCC: Create completion tracking
PCC->>PCC: Initialize as incomplete
else No compliance checklist
S->>S: No action needed
end
Proposal Compliance Workflow
1. Compliance Checklist Access
Proposal managers can access compliance checklists through dedicated endpoints:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
2. Answer Submission
Proposal managers submit compliance answers:
1 2 3 4 5 6 7 8 9 10 11 | |
3. Automatic Review Triggering
Certain answers can trigger call manager review requirements:
1 2 3 4 5 6 7 8 9 10 11 | |
4. Submission Validation
Proposals cannot be submitted until compliance requirements are met:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Call Manager Oversight
Call managers have comprehensive oversight capabilities for compliance management:
1. Compliance Overview
View compliance status across all proposals in a call:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
2. Detailed Answer Review
Access detailed compliance answers for specific proposals:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
3. Compliance Review and Approval
Call managers can review and approve compliance requirements:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Integration with Proposal Serializers
Proposal serializers automatically include compliance status information:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Real-World Use Cases
1. University Ethics Compliance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
2. Industry Safety Compliance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
3. Government Security Clearance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Benefits of Compliance Integration
- Automated Compliance Tracking: Ensures all proposals meet regulatory requirements before submission
- Flexible Question Types: Supports various question formats (boolean, text, select, date) for comprehensive compliance assessment
- Review Triggering: Automatically flags proposals requiring additional oversight based on specific answers
- Call Manager Oversight: Provides administrators with comprehensive compliance monitoring and approval capabilities
- Audit Trail: Maintains complete records of compliance answers and review decisions
- Integration with Submission: Prevents non-compliant proposals from being submitted to review process
The compliance checklist system seamlessly integrates with the existing proposal workflow while providing the flexibility needed for various regulatory and institutional requirements.
Advanced Features
Project Integration
Accepted proposals create Waldur projects with automatic configuration:
graph LR
subgraph "Proposal Acceptance"
P[Proposal ACCEPTED] --> PC[Project Creation]
PC --> RM[Role Mapping]
RM --> RA[Resource Allocation]
end
subgraph "Project Setup"
PPRM[ProposalProjectRoleMapping] --> AR[Assign Roles]
AR --> UP[User Permissions]
UP --> RS[Resource Access]
end
Notification System
Comprehensive notification system keeps stakeholders informed:
| Event | Recipients | Content |
|---|---|---|
| Proposal Submitted | Call managers, reviewers | New proposal requiring review |
| Review Assigned | Individual reviewers | Review assignment with deadline |
| Review Completed | Call managers | Review submitted notification |
| Proposal Accepted | Proposal team, call managers | Acceptance with resource details |
| Proposal Rejected | Proposal team | Rejection with feedback |
| Round Closing | All stakeholders | Deadline reminder |
Audit Trail
Complete audit logging for compliance and transparency:
1 2 3 4 5 6 7 8 9 10 | |
Error Handling and Data Integrity
Validation Framework
Comprehensive validation ensures data consistency:
1 2 3 4 5 6 7 8 9 10 | |
State Transition Guards
Prevent invalid state changes:
1 2 3 4 5 6 7 8 9 | |
Resource Cleanup
Automatic cleanup for canceled or rejected proposals:
1 2 3 4 5 6 | |
Performance Considerations
Query Optimization
- Eager loading for nested relationships
- Database indexes on frequently queried fields
- Efficient permission filtering
Scalability Patterns
- Asynchronous review assignment for large calls
- Batch processing for resource allocation
- Cached statistics for dashboard views
Monitoring Integration
- Review progress tracking
- Resource utilization monitoring
Quotas Application
Overview
The Quotas application is a Django app that provides generic implementation of quotas tracking functionality for Waldur:
- Store and query resource limits and usages for project, customer or any other model
- Aggregate quota usage in object hierarchies
- Provide concurrent-safe quota updates using delta-based storage
- Support multiple quota field types for different use cases
Architecture
Core Models
QuotaLimit
- Stores quota limit values for different scopes
- Uses generic foreign key to relate to any model instance
- Unique constraint on (name, content_type, object_id)
- Default value of -1 indicates unlimited quota
QuotaUsage
- Stores quota usage deltas instead of absolute values
- Enables concurrent updates without deadlocks
- Aggregated using SUM queries to get current usage
- Uses generic foreign key pattern for scope association
QuotaModelMixin
- Base mixin for models that need quota functionality
- Provides core quota management methods
- Defines abstract Quotas inner class for field definitions
- Includes property accessors for quotas, quota_usages, quota_limits
ExtendableQuotaModelMixin
- Extends QuotaModelMixin for runtime quota field addition
- Disables field caching to support dynamic fields
- Used when quota fields need to be added programmatically
Quota Field Types
QuotaField
- Base quota field class
- Configurable default limits and backend flags
- Optional creation conditions for conditional quota assignment
- Supports callable default values:
QuotaField(default_limit=lambda scope: scope.attr)
CounterQuotaField
- Automatically tracks count of target model instances
- Increases/decreases usage on target model creation/deletion
- Configurable delta calculation via
get_deltafunction - Example:
nc_resource_counttracks total resources in a project
TotalQuotaField
- Aggregates sum of specific field values from target models
- Useful for tracking total storage size, RAM allocation, etc.
- Extends CounterQuotaField with field-specific aggregation
- Example:
nc_volume_sizesums all volume sizes in a project
UsageAggregatorQuotaField
- Aggregates quota usage from child objects with same quota name
- Enables hierarchical quota tracking (customer ← project ← resource)
- Configurable child quota name mapping
- Example: Customer's
nc_resource_countaggregates from all projects
Signal Handling and Automation
Quota Handlers
count_quota_handler_factory: Creates handlers for CounterQuotaField automationhandle_aggregated_quotas: Manages usage aggregation across hierarchiesget_ancestors: Safely traverses object relationships with depth limitsdelete_quotas_when_model_is_deleted: Cleanup on model deletion
Signal Registration
- Automatically registers signals for CounterQuotaField instances
- Connects aggregation handlers to QuotaUsage model signals
- Handles project customer changes for quota recalculation
Concurrency Safety
Delta-Based Storage
The quota system uses INSERT operations instead of UPDATE to avoid deadlocks:
- Usage deltas are stored in QuotaUsage records
- Current usage calculated via SUM aggregation
- Multiple concurrent requests can safely add usage deltas
- Prevents shared write deadlocks in high-concurrency scenarios
Transaction Safety
set_quota_usageuses@transaction.atomicdecorator- Quota validation can be enabled per operation
- Safe quota changes through
apply_quota_usagemethod
Define Quota Fields
Models with quotas should inherit QuotaModelMixin and define a Quotas inner class:
1 2 3 4 5 6 7 | |
Real-World Examples
Customer Quotas
1 2 3 4 5 6 7 8 9 10 11 | |
Project Quotas
1 2 3 4 5 6 | |
Quota Operations
Basic Operations
get_quota_limit(quota_name)- Get current limit (returns -1 for unlimited)set_quota_limit(quota_name, limit)- Set new quota limitget_quota_usage(quota_name)- Get current usage (SUM of deltas)set_quota_usage(quota_name, usage)- Set absolute usage valueadd_quota_usage(quota_name, delta, validate=False)- Add delta to usage
Bulk Operations
apply_quota_usage(quota_deltas)- Apply multiple quota deltas atomicallyvalidate_quota_change(quota_deltas)- Validate quota changes before applying
Property Access
quotas- List of all quotas with name, usage, limitquota_usages- Dictionary of current usage valuesquota_limits- Dictionary of current limit values
Quota Validation
Use validate_quota_change() to check if quota changes would exceed limits:
1 2 3 4 5 | |
Shared Quota Resources
For resources that affect multiple quota scopes, implement SharedQuotaMixin:
1 2 3 4 5 6 7 8 9 10 | |
Background Tasks
Celery Tasks
update_custom_quotas()- Triggers custom quota recalculation signalupdate_standard_quotas()- Recalculates all standard quota fields
These tasks enable periodic quota synchronization and can be scheduled via cron.
Performance Considerations
Hierarchy Traversal
get_ancestors()includes depth limits (max_depth=10) to prevent infinite recursion- Handles deletion scenarios gracefully with ObjectDoesNotExist catching
- Uses sets to eliminate duplicate ancestors in complex hierarchies
Deletion Optimization
- Skips aggregation during bulk deletion (project deletion scenarios)
- Uses
_deletingflag to avoid timeout issues - Automatically cleans up quota records on model deletion
Query Optimization
- Uses
Sum()aggregation for efficient usage calculation - Generic foreign keys enable single tables for all quota types
- Field caching can be disabled for dynamic quota scenarios
Error Handling
Exception Types
QuotaError- Base quota system exceptionQuotaValidationError- Extends DRF ValidationError for quota limit violations
Graceful Degradation
- Missing relationships during deletion are safely ignored
- Invalid scopes return empty quota collections
- Failed quota operations don't break primary workflows
Integration Points
Structure Integration
- Customer and Project models include standard quota definitions
- Project movement between customers triggers quota recalculation
- User count and resource count quotas are tracked automatically
Plugin Integration
recalculate_quotassignal allows plugin-specific quota logic- Backend quota synchronization through plugin-specific handlers
- Resource-specific quota fields defined in individual plugins
Usage Workflow
Standard Workflow
- Quota Allocation: Increase usage when resource allocation begins
- Validation: Check quota limits before proceeding with operations
- Backend Sync: Pull actual usage from backends periodically
- Cleanup: Decrease usage only when backend deletion succeeds
Error Recovery
- Frontend quota not modified if backend API calls fail
- Quota pulling (sync) handles discrepancies
- Manual recalculation available via management commands
Sort Objects by Quotas
Inherit your FilterSet from QuotaFilterMixin and add quota ordering:
1 2 | |
Ordering can be done only by one quota at a time.
Tasks and executors
Overview
Waldur performs logical operations using executors that combine several tasks. This document explains the executor pattern, its implementation in Waldur, and provides examples of real-world usage.
Executor Pattern
Executor represents a logical operation on a backend, like VM creation or resize. It executes one or more background tasks and takes care of resource state updates and exception handling. The pattern provides several benefits:
- Abstraction: Hides complex backend interactions behind a simple interface
- Consistency: Ensures consistent state management across operations
- Modularity: Allows reusing common tasks across different operations
- Task Coordination: Simplifies orchestration of multiple related tasks
Basic Executor Flow
- Pre-apply phase: Prepare the resource by handling initial state transition
- Task generation: Create Celery task signature or chain of tasks
- Success/failure handlers: Define how to handle task completion or errors
- Execution: Process tasks either asynchronously or synchronously
Types of Executors
Waldur implements several specialized executors that inherit from the BaseExecutor class:
- CreateExecutor: For creating resources (sets state to OK on success)
- UpdateExecutor: For updating resources (schedules updating before actual update)
- DeleteExecutor: For deleting resources (schedules deleting before actual deletion)
- ActionExecutor: For executing specific actions on resources (custom operations)
Scheduling Celery task from signal handler
Please use transaction.on_commit wrapper if you need to schedule Celery task from signal handler. Otherwise, Celery task is scheduled too early and executed even if object is not yet saved to the database. See also django docs
Task Types
There are 3 types of task queues: regular (used by default), heavy and background.
Regular tasks
Each regular task corresponds to a particular granular action - like state transition, object deletion or backend method execution. They are supposed to be combined and called in executors. It is not allowed to schedule tasks directly from views or serializer.
Heavy tasks
If task takes too long to complete, you should try to break it down into smaller regular tasks in order to avoid flooding general queue. Only if backend does not allow to do so, you should mark such tasks as heavy so that they use separate queue.
1 2 3 | |
Throttle tasks
Some backends don't allow to execute several operations concurrently within the same scope. For example, one OpenStack settings does not support provisioning of more than 4 instances together. In this case task throttling should be used.
Background tasks
Tasks that are executed by celerybeat should be marked as "background". To mark task as background you need to inherit it from core.BackgroundTask:
1 2 3 4 | |
Explore BackgroundTask to discover background tasks features.
Task registration
For class based tasks use old Task base class for compatibility:
1 | |
For functions use decorator shared_task:
1 2 3 4 5 6 | |
Real-world Example: OpenStack Instance Creation
The OpenStack plugin's InstanceCreateExecutor demonstrates a complex real-world implementation of the executor pattern. It orchestrates multiple tasks:
- Creates all volumes for the instance
- Creates necessary network ports
- Creates the instance itself on the OpenStack backend
- Attaches volumes to the instance
- Updates security groups
- Creates and attaches floating IPs
- Pulls the final state of the instance and related resources
Each step is carefully orchestrated with appropriate state transitions, error handling, and checks to ensure the operation completes successfully.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Common Task Types in Executors
Executors typically use the following task types:
- BackendMethodTask: Executes a method on the backend resource
1 | |
- StateTransitionTask: Changes the state of a resource
1 | |
- PollRuntimeStateTask: Polls the backend until a resource reaches a desired state
1 2 3 4 5 6 | |
- PollBackendCheckTask: Checks if a backend operation has completed
1 | |
Executor-Task Relationship
Executors construct and manage task chains, providing a higher-level interface for complex operations.
Best Practices
- Use appropriate executor type based on operation (create, update, delete, action)
- Implement pre_apply for necessary state transitions
- Handle both success and failure cases with appropriate signatures
- Use transaction.on_commit when scheduling from signal handlers
- Break down long-running tasks into smaller chunks
- Use throttling when backend has concurrency limitations
Ended: Core concepts
Guides ↵
Build, Test, and Lint Commands
Development Setup
- Install dev dependencies:
uv sync --extra dev
Testing Commands
- Run all tests:
DJANGO_SETTINGS_MODULE=waldur_core.server.my_test_settings uv run pytest - Run specific module tests:
DJANGO_SETTINGS_MODULE=waldur_core.server.my_test_settings uv run pytest src/waldur_core/core/tests/test_serializers.py - Run single test:
DJANGO_SETTINGS_MODULE=waldur_core.server.my_test_settings uv run pytest src/waldur_core/core/tests/test_serializers.py::RestrictedSerializerTest::test_serializer_returns_fields_required_in_request -v - Verbose output: Add
-v -sflags for detailed output with print statements
Code Quality Commands
- Lint code:
uv run pre-commit run --all-files - Format code:
uv run pre-commit run --all-files - Check code style:
uv run pre-commit run --all-files
Markdown Linting
- Lint docs directory:
mdl --style markdownlint-style.rb docs/ - Lint project docs:
mdl --style markdownlint-style.rb CLAUDE.md docs/ - Lint specific file:
mdl --style markdownlint-style.rb path/to/file.md
Claude Code Subagent Validation
- Validate subagents:
.claude/validate-agents.sh
Common MD007 Issues and Fixes
- Use exactly 2 spaces for nested list items (configured in markdownlint-style.rb)
- Be consistent - if parent uses
*or-, all children at same level should use same indentation - Table section headers need empty cells to match column count:
| **Section** | | | - Fix incrementally - ensure ALL items at the same nesting level use identical spacing
Debugging Markdown Issues
- Use
sed -n 'Xp' file | hexdump -Cto see exact spacing (look for20 20= 2 spaces) - Run
mdl --verboseto see which specific rule is processing - Check markdownlint-style.rb for custom rule configurations
Development Philosophy
Core Beliefs
- Incremental progress over big bangs - Small changes that compile and pass tests
- Learning from existing code - Study and plan before implementing
- Pragmatic over dogmatic - Adapt to project reality
- Clear intent over clever code - Be boring and obvious
Simplicity Means
- Single responsibility per function/class
- Avoid premature abstractions
- No clever tricks - choose the boring solution
- If you need to explain it, it's too complex
Process
1. Planning & Staging
Break complex work into 3-5 stages. Document in IMPLEMENTATION_PLAN.md:
1 2 3 4 5 | |
- Update status as you progress
- Remove file when all stages are done
2. Implementation Flow
- Understand - Study existing patterns in codebase
- Test - Write test first (red)
- Implement - Minimal code to pass (green)
- Refactor - Clean up with tests passing
- Commit - With clear message linking to plan
3. When Stuck (After 3 Attempts)
CRITICAL: Maximum 3 attempts per issue, then STOP.
- Document what failed:
- What you tried
- Specific error messages
-
Why you think it failed
-
Research alternatives:
- Find 2-3 similar implementations
-
Note different approaches used
-
Question fundamentals:
- Is this the right abstraction level?
- Can this be split into smaller problems?
-
Is there a simpler approach entirely?
-
Try different angle:
- Different library/framework feature?
- Different architectural pattern?
- Remove abstraction instead of adding?
Technical Standards
Architecture Principles
- Composition over inheritance - Use dependency injection
- Interfaces over singletons - Enable testing and flexibility
- Explicit over implicit - Clear data flow and dependencies
- Test-driven when possible - Never disable tests, fix them
Code Quality
- Every commit must:
- Compile successfully
- Pass all existing tests
- Include tests for new functionality
-
Follow project formatting/linting
-
Before committing:
- Run formatters/linters
- Self-review changes
- Ensure commit message explains "why"
Error Handling
- Fail fast with descriptive messages
- Include context for debugging
- Handle errors at appropriate level
- Never silently swallow exceptions
Decision Framework
When multiple valid approaches exist, choose based on:
- Testability - Can I easily test this?
- Readability - Will someone understand this in 6 months?
- Consistency - Does this match project patterns?
- Simplicity - Is this the simplest solution that works?
- Reversibility - How hard to change later?
Project Integration
Learning the Codebase
- Find 3 similar features/components
- Identify common patterns and conventions
- Use same libraries/utilities when possible
- Follow existing test patterns
Tooling
- Use project's existing build system
- Use project's test framework
- Use project's formatter/linter settings
- Don't introduce new tools without strong justification
Dynamic Test Scheduling in CI/CD
This document outlines the architecture and implementation of the dynamic test scheduling system used in this project's CI/CD pipeline. The primary goal of this system is to dramatically reduce the time spent waiting for test feedback by intelligently selecting and running only the tests relevant to a given code change.
1. The Problem: Slow Feedback Loops
In a large monolithic application, the test suite can grow to thousands of tests, often taking 20 minutes or more to run. Running the entire suite for every minor change is inefficient and costly, leading to several problems:
- Reduced Developer Velocity: Developers switch context while waiting for CI, slowing down the development cycle.
- Increased CI/CD Costs: More runner time is consumed, leading to higher infrastructure costs.
- Discourages Small Commits: Developers may be tempted to batch many changes into a single commit to avoid multiple long waits.
The ideal system provides feedback that is proportional to the risk of the change. A small bugfix in an isolated module should receive feedback in minutes, while a change to a core shared library rightly warrants a full, comprehensive test run.
2. The Solution: A Dynamic, Dependency-Aware Pipeline
Our solution is a dynamic pipeline generation system that operates in two main phases: a Planning Phase and an Execution Phase.
2.1. Core Concepts
- Dependency Graph: We statically analyze the Python source code to build a dependency graph of all Django applications. This graph answers the question: "If App A changes, which other apps (B, C, etc.) depend on it and might break?" This graph is stored in
tests/dependency_graph.yamland is version-controlled. - Change Detection: For every merge request, we use Git to determine the exact set of files that have been modified.
- Test Selection: A Python script (
tests/select_tests.py) combines the list of changed files with the dependency graph to produce a minimal list of applications that need to be tested. - Dynamic Parallelization: We count the number of tests within the selected applications. Based on a pre-defined threshold, we dynamically decide how many parallel CI runners to allocate for the test run. Small batches of tests run on a single worker, while large batches are split across the maximum number of workers.
- Child Pipelines: GitLab's "parent-child pipeline" feature is used to implement this. A parent job does the planning and then triggers a child pipeline that is configured on-the-fly to match the required workload (e.g., a single job or 10 parallel jobs).
2.2. Workflow Visualization
The following diagram illustrates the complete end-to-end workflow for a typical merge request pipeline.
graph TD
subgraph "Parent Pipeline"
A[Start MR Pipeline] --> B{Merge Check}
B -->|Success| C[generate_test_pipeline job]
B -->|Failure| D[Fail Fast!]
C --> E[tests/generate-pipeline.sh]
E --> F[select_tests.py]
F --> G{Full Run src?}
G -->|Yes| H[Decide: Max Workers]
G -->|No| I[pytest --collect-only]
I --> J{Test Count > Threshold?}
J -->|Yes| K[Decide: Scaled # of Workers]
J -->|No| L[Decide: 1 Worker]
H --> M[Generate artifacts]
K --> M
L --> M
M --> N[run_tests_dynamically job]
end
subgraph "Child Pipeline"
N -->|Triggers with TEST_PATHS| O[Test Jobs]
O -->|1 worker| P[tests/waldur-test]
O -->|N workers| P
P --> Q[Execute Pytest]
Q --> R[Upload Reports]
end
classDef success fill:#d4edda,stroke:#155724
classDef failure fill:#f8d7da,stroke:#721c24
classDef childPipeline fill:#cce5ff,stroke:#004085
class A success
class D failure
class N,O childPipeline
3. Implementation Details
The system is composed of several key scripts and GitLab CI configuration files.
3.1. Core Scripts (Located in tests/)
build_dependency_graph.py- Purpose: To generate the
dependency_graph.yamlfile. - How: It recursively finds all Django apps, parses their Python files using the
astmodule, and records all inter-appimportstatements. -
When to run: This script should be run manually and the result committed whenever new apps are added or major refactoring occurs.
-
select_tests.py - Purpose: To determine the list of applications to test for a given change.
- How: It reads the
dependency_graph.yaml, gets the list of changed files from Git, and identifies the set of directly changed apps. It does not perform transitive dependency checks, for a balance of speed and safety. -
Special Case: If a "core" file (like
pyproject.tomlor.gitlab-ci.yml) is changed, it outputs the special stringsrcto signal a full test run. -
generate-pipeline.sh - Purpose: The main "brain" of the planning phase. It generates the child pipeline configuration.
-
How:
- Calls
select_tests.py. - If the result is
src, it immediately decides on maximum parallelization. - Otherwise, it runs
pytest --collect-onlyto get an exact test count. - Based on the count and pre-defined thresholds, it determines the number of parallel workers needed.
- It writes a complete
generated-pipeline.ymlfile, embedding the correctparallel:keyword and other variables. - It also writes a
generated_vars.envfile to pass the selected test paths to the child pipeline.
- Calls
-
waldur-test - Purpose: The final "executor" script that runs inside the child pipeline jobs.
- How: It's a simple, robust shell script that receives the test mode, test paths, and a splitting flag (
true/false) as arguments. It constructs the finalpytestcommand, adding the--test-group-*flags only if instructed to do so.
3.2. GitLab CI Configuration (.gitlab-ci.yml)
The main CI file implements a two-job pattern for the dynamic pipeline:
generate_test_pipeline- A non-parallel job that runs first.
- It performs the merge check to fail fast.
- It executes
tests/generate-pipeline.sh. -
It saves
generated-pipeline.ymlandgenerated_vars.envas artifacts. -
run_tests_dynamically - A non-script,
trigger-only job. - It
needsthegenerate_test_pipelinejob to ensure it runs second and has access to its artifacts. - It uses
trigger:include:artifactto start a child pipeline using the generated YAML. - Crucially, it uses
trigger:forward:yaml_variables:trueto pass theTEST_PATHSvariable to the child pipeline.
4. How to Maintain This System
- Updating Dependencies: If you add a new Django app, run
python tests/build_dependency_graph.pyand commit the updatedtests/dependency_graph.yaml. - Tuning Performance: The
TEST_SPLITTING_THRESHOLDvariable intests/generate-pipeline.shcan be adjusted. If you find that small parallel jobs are inefficient, increase the threshold. If you have very fast-starting runners, you could decrease it. - Debugging: If a pipeline fails, first check the log of the
generate_test_pipelinejob. It contains detailed output about which paths were selected, how many tests were discovered, and what the generated child pipeline configuration looked like. This will usually pinpoint the source of the problem.
Add a new language for translatable models
For translating fields of some models we use django modeltranslation.
First run
To setup the database environment, after completing all migrations, execute in a console:
1 | |
Add a new language
To populate the generated language tables with initial content, run
1 | |
How to write docs
Documentation for sysadmins
Documentation for sysadmins should contain a description of settings that allows to setup and customize Waldur MasterMind. It should be located in wiki.
Documentation for developers
If documentation describes basic concepts that are not related to any
particular part of code it should be located in /docs folder. All other documentation for developers should be located in code.
Tips for writing docs:
- add description for custom modules that are unique for particular plugin;
- add description to base class methods that should be implemented by other developers;
- don't add obvious comments for standard objects or parameters.
How to write serializers
This guide provides comprehensive patterns and best practices for writing serializers in Waldur MasterMind, based on analysis of the current codebase architecture.
Core Serializer Architecture Principles
Mixin-Based Composition
Waldur uses extensive mixin composition to build complex serializers with reusable functionality. The recommended order follows Python's Method Resolution Order (MRO):
1 2 3 4 5 6 7 | |
Key Mixin Classes
- AugmentedSerializerMixin: Core functionality for signal injection and related fields
- RestrictedSerializerMixin: Field-level control to avoid over-fetching
- PermissionFieldFilteringMixin: Security filtering based on user permissions
- SlugSerializerMixin: Slug field management with staff-only editing
- CountrySerializerMixin: Internationalization support
Object Identity and HATEOAS
UUID-Based Identity
All objects are identified by UUIDs rather than database IDs for distributed database support:
1 2 3 4 5 6 | |
Consistent URL Patterns
- Detail views:
{model_name}-detail - List views:
{model_name}-list - Custom actions:
{model_name}-{action}
1 2 3 4 5 6 | |
Automatic Related Field Generation
Related Paths Pattern
Use related_paths to automatically generate related object fields:
1 2 3 4 5 6 7 8 9 10 11 | |
This automatically generates: customer_uuid, customer_name, customer_native_name, customer_abbreviation, etc.
Security and Permissions
Permission-Based Field Filtering
Always use PermissionFieldFilteringMixin for related fields to ensure users can only reference objects they have access to:
1 2 3 | |
Permission List Serializers
For many=True relationships, use PermissionListSerializer:
1 2 3 | |
Staff-Only Fields
Restrict sensitive fields to staff users:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Protected Fields
Use protected_fields to make fields read-only during updates:
1 2 | |
Performance Optimization
Eager Loading
Always implement eager_load() static methods for query optimization:
1 2 3 4 5 6 7 8 9 | |
RestrictedSerializerMixin Documentation
The RestrictedSerializerMixin provides a powerful and flexible way to dynamically control which fields are rendered by a Django REST Framework serializer based on query parameters in the request URL. This is especially useful for optimizing API responses, reducing payload size, and allowing API clients to fetch only the data they need.
The mixin supports two primary modes of operation:
- Restricted Field Rendering (Whitelisting): The client specifies exactly which fields they want, and all others are excluded.
- Optional Fields (Blacklisting by Default): The serializer defines certain "expensive" or non-essential fields that are excluded by default but can be explicitly requested by the client.
Basic Usage
To use the mixin, simply add it to your serializer's inheritance list. The mixin requires the request object to be in the serializer's context, which DRF views typically provide automatically.
1 2 3 4 5 6 7 | |
Feature 1: Restricted Field Rendering (Whitelisting)
This is the primary feature. By adding the ?field= query parameter to the URL, an API client can request a specific subset of fields. The serializer will only render the fields present in the field parameters.
Example:
Imagine a CustomerSerializer with the fields uuid, name, email, and created.
To request only the name and uuid of a customer:
URL: /api/customers/123/?field=name&field=uuid
Expected JSON Response:
1 2 3 4 | |
Feature 2: Optional Fields (Blacklisting by Default)
Some fields can be expensive to compute (e.g., involving extra database queries, aggregations, or external API calls). You can mark these fields as "optional" by overriding the get_optional_fields method. These fields will not be included in the response unless they are explicitly requested via the ?field= parameter.
Example:
Let's add projects (a related field) and billing_price_estimate (a computed field) to our serializer and mark them as optional.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Behavior Examples
Standard Request
URL: /api/customers/123/
Result: The optional fields (projects, billing_price_estimate) are excluded. The expensive get_billing_price_estimate method is never called.
1 2 3 4 5 6 | |
Requesting Optional Fields
URL: /api/customers/123/?field=name&field=projects
Result: The response is restricted to name, and the optional field projects is included because it was requested.
1 2 3 4 5 6 7 | |
Advanced Behavior
Nested Serializers
The RestrictedSerializerMixin is designed to be "nesting-aware." It will only apply its filtering logic to the top-level serializer in a request. Any nested serializers will be rendered completely, ignoring the ?field= parameters from the URL. This prevents unintentional and undesirable filtering of nested data structures.
Example: A ProjectSerializer that includes a nested CustomerSerializer.
URL: /api/projects/abc/?field=name&field=customer
Expected JSON Response: The ProjectSerializer is filtered to name and customer. The nested CustomerSerializer, however, renders all of its fields (excluding its own optional fields, of course), because it is not the top-level serializer.
1 2 3 4 5 6 7 8 9 | |
List Views (many=True)
The mixin works seamlessly with list views. The field filtering is applied individually to each object in the list.
Example:
URL: /api/customers/?field=uuid&field=name
Expected JSON Response:
1 2 3 4 5 6 7 8 9 10 | |
Complex Validation Patterns
Hierarchical Validation
Implement validation in layers:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Dynamic Field Behavior
Use get_fields() for context-dependent field behavior:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
External API Integration
For external validation (e.g., VAT numbers):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Service Configuration Patterns
Options Pattern for Flexible Configuration
Use the options pattern for service-specific configuration without model changes:
1 2 3 4 5 6 7 8 | |
Secret Field Management
Protect sensitive configuration data:
1 2 | |
Complex Resource Orchestration
Transactional Resource Creation
For resources that create multiple related objects:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
Advanced Serializer Patterns
Nested Resource Serializers
For complex relationships:
1 2 3 4 5 6 7 8 | |
Generic Relationships
For polymorphic relationships:
1 2 3 4 5 6 7 8 9 10 | |
Signal-Based Field Injection
Extensible Serializers
Avoid circular dependencies by using signals for field injection:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Standard Meta Class Configuration
Complete Meta Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Custom Field Types
Specialized Fields
- HTMLCleanField: Automatically sanitizes HTML content
- DictSerializerField: Handles JSON dictionary serialization
- GenericRelatedField: Supports multiple model types in relations
- MappedChoiceField: Maps choice values for API consistency
1 2 3 4 5 6 7 | |
Testing Serializers
Factory-Based Testing
Use factory classes for test data generation:
1 2 3 4 5 6 7 8 | |
Permission Testing
Test permission-based filtering:
1 2 3 4 5 6 7 8 | |
Common Pitfalls and Best Practices
Do's
- Always use UUID lookup fields for all hyperlinked relationships
- Implement eager_load() for any serializer used in list views
- Use PermissionFieldFilteringMixin for all related fields
- Follow the mixin order for consistent behavior
- Use related_paths for automatic related field generation
- Implement comprehensive validation at multiple levels
- Use transactions for multi-resource creation
- Mark expensive fields as optional
Don'ts
- Don't use
fields = '__all__'- always be explicit - Don't forget lookup_field='uuid' in extra_kwargs
- Don't skip permission filtering for security-sensitive fields
- Don't implement custom field logic without using established patterns
- Don't create circular dependencies - use signal injection instead
- Don't ignore performance - always consider query optimization
- Don't hardcode view names - use consistent naming patterns
Migration from Legacy Patterns
Updating Existing Serializers
When updating legacy serializers:
- Add missing mixins in the correct order
- Implement
eager_load()static methods - Add
related_pathsfor automatic field generation - Add permission filtering with
get_filtered_field_names() - Use
protected_fieldsinstead of custom read-only logic - Update to use
lookup_field='uuid'consistently
This comprehensive guide provides the patterns and practices needed to write maintainable, secure, and performant serializers that follow Waldur's architectural conventions.
How to write tests
Application tests structure
Application tests should follow next structure:
-
/tests/ - folder for all application tests.
-
/tests/test_my_entity.py - file for API calls tests that are logically related to entity. Example: test calls for project CRUD + actions.
-
/tests/test_my_entity.py:MyEntityActionTest - class for tests that are related to particular endpoint. Examples: ProjectCreateTest, InstanceResizeTest.
-
/tests/unittests/ - folder for unittests of particular file.
-
/tests/unittests/test_file_name.py - file for test of classes and methods from application file "file_name". Examples: test_models.py, test_handlers.py.
-
/tests/unittests/test_file_name.py:MyClassOrFuncTest - class for test that is related to particular class or function from file. Examples: ProjectTest, ValidateServiceTypeTest.
Tips for writing tests
- cover important or complex functions and methods with unittests;
- write at least one test for a positive flow for each endpoint;
- do not write tests for actions that does not exist. If you don't support "create" action for any user there is no need to write test for that;
- use fixtures (module fixtures.py) to generate default structure.
How to override settings in unit tests
Don't manipulate django.conf.settings directly as Django won't restore the original values after such manipulations. Instead you should use standard context managers and decorators. They change a setting temporarily and revert to the original value after running the testing code. If you modify settings directly, you break test isolation by modifying global variable.
If configuration setting is not plain text or number but dictionary, and you need to update only one parameter, you should take whole dict, copy it, modify parameter, and override whole dict.
Wrong:
1 2 | |
Right:
1 2 3 4 5 | |
Running tests
In order to run unit tests for specific module please execute the following command. Note that you should substitute module name instead of example waldur_openstack. Also it is assumed that you've already activated virtual Python environment.
1 | |
How to write views
View workflow
-
Filtering - filter objects that are visible to a user based on his request. Raise 404 error if object is not visible.
-
Permissions check - make sure that user has right to execute chosen action. Raise 403 error if user does not have enough permissions.
-
View validation - check object state and make sure that selected action can be executed. Raise 409 error if action cannot be executed with current object state.
-
Serializer validation - check that user's data is valid.
-
Action logic execution - do anything that should be done to execute action. For example: schedule tasks with executors, run backend tasks, save data to DB.
-
Serialization and response output - return serialized data as response.
Installation Guide
Installation via Dev Containers
If you use VS Code or GitHub Codespaces, you can quickly set up a development environment using Dev Containers. This method provides a consistent, pre-configured environment with all necessary dependencies.
Prerequisites for Dev Containers are:
- VS Code with the Dev Containers extension installed
- Docker Desktop (for local development)
- Git
After cloning repository, when prompted "Reopen in Container", click on it. Alternatively, you can press Ctrl+Shift+P, type "Dev Containers: Reopen in Container" and press Enter.
VS Code will build the dev container and set up the environment automatically. This process includes:
- Installing all system dependencies
- Setting up Python with the correct version
- Installing VS Code extensions
- Installing uv and project dependencies
- Installing PostgreSQL
- Configuring pre-commit hooks
Once the container is built and running, you'll have a fully configured development environment ready to use.
Installation from source
Prerequisites
- Linux OS. If you use Windows, you should install Linux either via Virtualbox or Windows Subsystem for Linux.
gitvirtualenvCcompiler and development libraries needed to build dependencies
Package installation by OS
-
Debian or Ubuntu:
sudo apt install git python3-pip python3-venv python3-dev gcc libffi-dev libsasl2-dev libssl-dev libpq-dev libjpeg8-dev zlib1g-dev xmlsec1 libldap2-dev liblzma-dev libxslt1-dev libxml2-dev libbz2-dev libreadline-dev libsqlite3-dev -
OS X:
brew install openssl; export CFLAGS="-I$(brew --prefix openssl)/include $CFLAGS"; export LDFLAGS="-L$(brew --prefix openssl)/lib $LDFLAGS"
Installation steps
Install uv
1 | |
Install pyenv
1 2 3 | |
Get the code
1 2 | |
Install Waldur in development mode
1 2 3 | |
NB: If you use a machine with Apple M1 CPU, run this before:
1 2 3 4 | |
Create and edit settings file
1 2 | |
Database setup
Initialize PostgreSQL database:
1 2 3 | |
Add a password waldur for this user:
1 2 3 | |
Final Setup Steps
Run migrations:
1 | |
Collect static files:
1 | |
Start Waldur:
1 | |
Additional configuration
For detailed configuration instructions, visit https://docs.waldur.com/latest/admin-guide/mastermind-configuration/general/
Developer's Guide to OpenAPI Schema Generation in Waldur
This document provides an in-depth explanation of our approach to generating a high-quality OpenAPI 3 schema for the Waldur API using drf-spectacular. A well-defined schema is critical for API documentation, client generation, automated testing, and providing a clear contract for our API consumers.
We heavily customize drf-spectacular's default behavior to produce a schema that is not only accurate but also rich with metadata, developer-friendly, and reflective of Waldur's specific architecture and conventions.
1. Architectural Overview
drf-spectacular generates a schema by introspecting your Django Rest Framework project. Our customizations hook into this process at four key stages, each handled by a different component:
| Component | File | Responsibility | When to Use |
|---|---|---|---|
| Endpoint Enumerator | openapi_generators.py |
Discovering Endpoints. Controls which API endpoints and methods are included in the schema. | When you need to globally filter out views or methods based on a project-specific convention (e.g., a disabled_actions property on a viewset). |
Schema Inspector (AutoSchema) |
openapi_inspector.py |
Analyzing Individual Endpoints. The main workhorse. It inspects a single view/method to determine its parameters, request/response bodies, description, operation ID, and other details. | For the majority of customizations related to a specific endpoint's representation, like adding custom parameters, modifying descriptions, or adding vendor extensions. |
| Extensions | openapi_extensions.py |
Handling Custom Components. Provides explicit schema definitions for custom classes (Authentication, Serializer Fields, Serializers) that drf-spectacular cannot introspect automatically. |
When you have a reusable custom class (e.g., GenericRelatedField) that needs a consistent representation across the entire schema. |
| Post-processing Hooks | schema_hooks.py |
Modifying the Final Schema. Functions that run on the fully generated schema just before it's rendered. They are used for global search-and-replace operations, refactoring, and complex structural changes. | For broad, cross-cutting changes like adding a header to all list endpoints, refactoring common parameters into components, or implementing complex polymorphic schemas. |
The generation process flows like this: Enumerator → Inspector (for each endpoint) → Extensions (as needed by Inspector) → Schema Hooks → Final OpenAPI YAML/JSON
2. The Core Inspector: WaldurOpenApiInspector
This class, located in openapi_inspector.py, is our custom subclass of AutoSchema and contains the most significant logic for tailoring the schema endpoint-by-endpoint.
Key Methods and Use-Cases
resolve_serializer(...)
- Purpose: To ensure that when a serializer is instantiated during schema generation, it's aware of this context.
- Mechanism: It calls the parent method and then sets a flag
_is_generating_schema = Trueon the mock request object within the serializer's context. - Design Rationale: Several of our custom serializers change their behavior based on this flag. For example,
RestrictedSerializerMixinmight include all its fields, even optional ones, if this flag is set. This gives API consumers a complete picture of all possible data they could receive.
get_operation(...)
- Purpose: To enrich the generated "operation" object with Waldur-specific metadata and logic.
-
Edge Cases Handled:
- HEAD method for Lists: We map the
HEADHTTP method to a "count" operation for list views. The inspector provides a custom description and a simple200response. Crucially, it returnsNonefor detail views (/api/users/{uuid}/), effectively hiding this non-sensical operation. - Custom Permissions Metadata: This is a powerful feature for our frontend developers. If a view action has a
_permissionsattribute (e.g.,create_permissions), the inspector extracts this data and injects it into the schema under a customx-permissionsvendor extension. This allows the frontend to understand the permissions required for an action without hardcoding them.
1 2 3 4 5 6 7
# Example Output "/api/projects/": post: summary: "Create a new project" x-permissions: - permission: "project.create" scopes: ["customer"] - HEAD method for Lists: We map the
get_description()
- Purpose: To pull the docstring from the correct viewset action (
create,retrieve,my_action) rather than from the view class itself. - Convention: Developers must write clear, concise docstrings on viewset action methods. These docstrings are what users will see in the API documentation.
get_operation_id()
- Purpose: To generate clean, predictable, and code-generator-friendly operation IDs.
- Convention: The default behavior is modified to produce IDs like
projects_list,projects_create,projects_retrieve. A special case for non-createPOSTactions (e.g., custom actions) uses a shorter format to avoid redundancy. This consistency is vital for generated API clients.
get_override_parameters()
- Purpose: To dynamically add query parameters based on the response serializer.
- Use-Case: Our
RestrictedSerializerMixinallows users to request a subset of fields via thefieldquery parameter (e.g.,?field=name&field=uuid). This method introspects the response serializer, gets all its possible field names, and automatically generates theOpenApiParameterforfieldwith a completeenumof available values. This provides excellent auto-complete and validation in tools like Swagger UI.
_postprocess_serializer_schema(...)
- Purpose: To modify a serializer's schema after it has been generated.
- Use-Case: Our serializers can have an
optional_fieldsoverride. This method respects that override by removing those fields from therequiredarray in the final schema. This is a clean way to tweak serializer requirements for the API without complex serializer inheritance.
3. Specialized Handlers: Extensions
Located in openapi_extensions.py, these classes provide a modular way to handle custom components.
WaldurTokenScheme,WaldurSessionScheme,OIDCAuthenticationScheme: These extensions map our custom DRF authentication classes to standard OpenAPI security schemes. This is the correct way to document API authentication.GenericRelatedFieldExtension:- Problem:
drf-spectaculardoesn't know how to represent our customGenericRelatedField. - Solution: This extension tells the generator to simply represent it as a
string(which, in our case, is a URL). This avoids schema generation errors and provides a simple, accurate representation. OpenStackNestedSecurityGroupSerializerExtension:- Problem: A specific nested serializer is overly complex, and for the API schema, we only want to show a simplified version of it.
- Solution: This extension bypasses introspection of the serializer entirely and provides a fixed, hardcoded schema (
{"type": "object", "properties": {"url": ...}}). This is an excellent technique for simplifying complex nested objects in the API documentation.
4. Endpoint Discovery: WaldurEndpointEnumerator
Located in openapi_generators.py, this class controls which endpoints are included in the schema.
- Purpose: The default enumerator might include all possible HTTP methods that a view could support. Our
WaldurEndpointEnumeratoris smarter. - Mechanism: It respects the
disabled_actionslist property on our viewsets. If an action (e.g.,'destroy') is indisabled_actions, the corresponding method (DELETE) will be excluded from the schema for that endpoint. - Convention: To disable an API endpoint, add its action name to the
disabled_actionslist on theViewSet. The API documentation will automatically update to reflect this.
5. Global Transformations: Schema Hooks
Located in schema_hooks.py, these functions perform powerful, sweeping modifications to the entire generated schema. They are the last step in the process.
- Design Principle: Use hooks for cross-cutting concerns that affect many endpoints, or for complex transformations that are difficult to achieve within the inspector.
Key Hooks and Their Purpose
refactor_pagination_parameters:- Best Practice: This hook implements the DRY (Don't Repeat Yourself) principle. It finds all instances of
pageandpage_sizeparameters, moves their definition to the global#/components/parameters/section, and replaces the inline definitions with$refpointers. This reduces schema size and improves consistency. add_result_count_header:- Purpose: To document that all our paginated list endpoints return the
x-result-countheader. - Mechanism: It identifies list endpoints (by checking if
operationIdends in_list), defines a reusable header in#/components/headers/, and adds a reference to it in the2xxresponses of those endpoints.
- Purpose: To document that all our paginated list endpoints return the
make_fields_optional:- Problem: Endpoints using
RestrictedSerializerMixincan return a variable subset of fields. How do we represent this? - Solution: This hook finds any operation that has a
fieldquery parameter. For those operations, it recursively traverses their response schemas and removes therequiredproperty from all objects. This correctly signals to API consumers that any field might be absent if not explicitly requested.
- Problem: Endpoints using
transform_paginated_arrays:- Purpose: To simplify the schema structure for paginated responses.
- Mechanism:
drf-spectacularoften creates named components likePaginatedUserList. This hook finds all such components, inlines their array definition wherever they are referenced, and then removes the original component definition. The result is a slightly more verbose but flatter and often easier-to-understand schema for the end-user.
add_polymorphic_attributes_schema:- This is the most advanced and powerful hook in our arsenal.
- Problem: The
attributesfield on the "Create Order" endpoint is polymorphic. Its structure depends entirely on theoffering_typeof the marketplace offering. - Solution: We use OpenAPI's
oneOfkeyword to represent this polymorphism. - Mechanism: The hook acts as a pre-processing step. It dynamically:
- Iterates through all registered marketplace plugins (
waldur_mastermind.marketplace.plugins). - For each plugin, it finds the serializer responsible for validating the
attributesfield. - It uses a temporary
AutoSchemainstance to generate a schema for that specific serializer's fields. - It adds this generated schema to
#/components/schemas/with a unique name (e.g.,OpenStackInstanceCreateOrderAttributes). - Finally, it modifies the
OrderCreateRequestschema to replace theattributesfield with aoneOfthat references all the dynamically generated schemas, plus a generic fallback.
- Iterates through all registered marketplace plugins (
- Architectural Significance: This demonstrates how hooks can be used to generate schema fragments dynamically by introspecting parts of the application (in this case, the plugin system) that are outside the immediate scope of a DRF view.
- Other Hooks:
postprocess_drop_description,postprocess_fix_enum,remove_waldur_cookie_auth,adjust_request_body_content_typesare utility hooks for cleaning up and standardizing the final output.
6. Query Parameters and Enum Definitions
Ordering Parameters
When implementing ordering functionality for API endpoints, proper OpenAPI schema documentation is crucial for API consumers. Waldur uses the convention of o as the ordering parameter name (configured in ORDERING_PARAM).
Best Practice: Explicit Enum Definitions
Instead of using a generic str type for ordering parameters, define explicit enums that list all supported ordering fields:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
This approach generates proper OpenAPI schema:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Benefits
- API Documentation: Clear enumeration of supported ordering fields
- Client Generation: Generated clients include proper validation and auto-completion
- Frontend Integration: UI components can dynamically generate ordering controls
- API Testing: Testing tools can validate ordering parameters automatically
Implementation Pattern
- Define the enum schema in the
@extend_schemadecorator - Include both ascending and descending options (prefix with
-for descending) - Map to database fields in your filtering logic:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
7. Best Practices and Conventions
- Docstrings are the Source of Truth: Write clear docstrings on viewset action methods. They become the official API descriptions.
- Use the Right Tool for the Job:
- View-specific logic? Use the
WaldurOpenApiInspector. - Reusable custom class? Create an
Extension. - Global rule for filtering endpoints? Modify the
WaldurEndpointEnumerator. - Schema-wide refactoring or complex polymorphism? Write a
postprocessing_hook. - Leverage View Attributes for Metadata: We use view attributes like
create_permissionsanddisabled_actionsto control schema generation. This co-locates API behavior and its documentation, making the code easier to maintain. - Define Explicit Enums for Query Parameters: For parameters like ordering (
o), filtering, or status selection, always define explicit enum values in the schema instead of generic string types. This provides better documentation, client generation, and validation. - Embrace Vendor Extensions (
x-): For custom metadata that doesn't fit the OpenAPI standard (like ourx-permissions), vendor extensions are the correct and standard way to include it. - Strive for DRY Schemas: Use hooks like
refactor_pagination_parametersto create reusable components (parameters,headers,schemas). This keeps the schema clean and consistent. - Handle Polymorphism with Hooks: For complex conditional schemas (
oneOf,anyOf), post-processing hooks are the most flexible and powerful tool available, as demonstrated byadd_polymorphic_attributes_schema. - Simplify for the Consumer: Use extensions (
OpenStackNestedSecurityGroupSerializerExtension) and hooks (transform_paginated_arrays) to simplify complex or deeply nested objects where the full detail is unnecessary for the API consumer. The goal is a schema that is not just accurate, but also usable.
8. The OpenAPI Schema in the Broader Workflow
The OpenAPI schema is not merely a documentation artifact; it is a critical, machine-readable contract that drives a significant portion of our development, testing, and release workflows. Our CI/CD pipelines are built around the schema as the single source of truth for the API's structure.
The entire automated process is defined in the GitLab CI configurations for the waldur-mastermind and waldur-docs repositories.
1. Automated Generation
The process begins in the waldur-mastermind pipeline in a job named Generate OpenAPI schema.
- Triggers: This job runs automatically in two scenarios:
- On a schedule for the
developbranch: This ensures we always have an up-to-date schema reflecting the latest development state. - When a version tag is pushed (e.g.,
1.2.3): This generates a stable, versioned schema for a specific release.
- On a schedule for the
- Output: The job produces a versioned
waldur-openapi-schema.yamlfile, which is stored as a CI artifact. This artifact becomes the input for all subsequent steps.
2. Automated SDK and Tooling Generation
The generated schema artifact immediately triggers a series of parallel jobs, each responsible for generating a specific client SDK or tool. This "schema-first" approach ensures that our client libraries are always perfectly in sync with the API they are meant to consume.
Generate TypeScript SDK: For Waldur HomePort and other web frontends.Generate Python SDK: For scripting, integrations, and internal tools.Generate Go SDK: For command-line tools and backend services.Generate Terraform SDK: Creates a Terraform provider for infrastructure-as-code management of Waldur resources.Generate Ansible modules: Creates Ansible collections for configuration management and automation.
3. Continuous Delivery of SDKs
For development builds (from the develop branch), the newly generated SDKs are automatically committed and pushed to the main or develop branch of their respective GitHub repositories. This provides a continuous delivery pipeline for our API clients, allowing developers to immediately access and test the latest API changes through their preferred language.
4. Release and Versioning Workflow
For tagged releases, the workflow is more extensive:
- API Diff Generation: A job named
Generate OpenAPI schema diffis triggered. It fetches the schema of the previous release from thewaldur-docsrepository and compares it against the newly generated schema usingoasdiff. It produces a human-readable Markdown file (openapi-diff.md) detailing exactly what has changed (endpoints added, fields removed, etc.). - Documentation Deployment: The new versioned schema (
waldur-openapi-schema-1.2.3.yaml) and the diff file are automatically committed to thewaldur-docsrepository. The documentation site is then rebuilt, archiving the new schema and making the API changes visible in the release notes. - Changelog Integration: The main
CHANGELOG.mdin thewaldur-docsrepository is automatically updated with links to the new schema file and the API diff page. This provides unparalleled clarity for integrators, showing them precisely what changed in a new release. - SDK Release: The tagged version of each SDK is released, often involving bumping the version in configuration files (
pyproject.toml,package.json) and pushing a corresponding version tag to the SDK's repository.
This automated, schema-driven workflow provides immense benefits:
- Consistency: All clients and documentation are generated from the same source, eliminating discrepancies.
- Speed: Developers get up-to-date SDKs without manual intervention, accelerating the development cycle.
- Reliability: The risk of human error in writing client code or documenting changes is significantly reduced.
- Clarity: Release notes are precise and automatically generated, giving integrators clear instructions on what to expect.
Declaring resource actions
Any methods on the resource viewset decorated with
@action(detail=True, methods=['post']) will be recognized as resource
actions. For example:
1 2 3 4 5 6 7 8 9 | |
Complex actions and serializers
If your action uses serializer to parse complex data, you should declare action-specific serializers on the resource viewset. For example:
1 2 3 4 | |
Waldur Django Architecture
Project Structure Overview
Waldur MasterMind is a Django-based cloud orchestration platform built with a highly modular, plugin-based architecture demonstrating advanced Django patterns and enterprise-level design principles.
Settings Configuration
- Hierarchical Settings:
base_settings.py(core) →settings.py(local) → specialized settings - Extension System: Automatic discovery and registration of plugins via WaldurExtension
- Multi-database: PostgreSQL primary with optional read replicas
- REST Framework: Custom authentication (Token, SAML2, OIDC, OAuth)
- Celery Integration: Distributed task processing with priority queues
Django Apps Organization
Core Layer (waldur_core/)
core: Foundation with extension system, base models, authenticationstructure: Organizational hierarchy (customers → projects → resources)users: User management with profilespermissions: Role-based access control with hierarchical scopingquotas: Resource quota managementlogging: Event logging and audit trail
Business Logic Layer (waldur_mastermind/)
marketplace: Central service catalog and provisioning (assembly app)billing: Financial management and invoicingsupport: Integrated support ticket systemanalytics: Usage analytics and reporting
Provider Integration Layer
- Cloud Providers: OpenStack, AWS, Azure, VMware, DigitalOcean
- Compute Platforms: Rancher, SLURM, Kubernetes
- Authentication: SAML2, Social/OAuth, Valimo
URL Routing and API Structure
- Base Path: All REST endpoints under
/api/ - Router System:
SortedDefaultRouter+NestedSimpleRouterfor hierarchical resources - Naming Convention: Hyphenated resource names, UUID-based lookup
- Extension Registration: Automatic URL discovery through plugin system
Models, Serializers, and Views Architecture
Model Architecture
- Mixin-based Design:
UuidMixin,StateMixin,LoggableMixinfor code reuse - Hierarchical Structure: Customer → Project → Resource relationships
- State Management: FSM-based transitions with django-fsm
- Soft Deletion: Logical deletion for data retention
Serializer Patterns
AugmentedSerializerMixin: Dynamic field injection via signals- Permission Integration: Automatic queryset filtering
- Eager Loading: Query optimization through
eager_load()methods - Field Protection: Sensitive field protection during updates
- Related Fields: ALWAYS use SlugRelatedField with slug_field="uuid" instead of PrimaryKeyRelatedField
ViewSet Architecture
ActionsViewSet: Base class with action-specific serializersExecutorMixin: Asynchronous resource operations- Permission Integration: Automatic permission checking
- Atomic Transactions: Configurable transaction support
Authentication and Permissions
- Multi-modal Auth: Token, Session, OIDC, SAML2 support
- Impersonation: Staff user impersonation with audit trail
- RBAC System: Hierarchical role-based access control
- Scope-based Permissions: Customer/Project/Resource level permissions
- Time-based Roles: Role assignments with expiration
Signal Handlers
- Organization: Place signal handlers in dedicated
handlers.pyfiles, not in models.py - Registration: Register signals in
apps.pyready() method with proper dispatch_uid
Task Queue and Background Processing
- Celery Queues:
tasks,heavy,backgroundwith priority routing - Beat Scheduler: Scheduled task system (24+ tasks)
- Event Context: Thread-local context passing to background tasks
- Extension Tasks: Automatic task registration from plugins
Key Design Patterns
- Plugin Architecture: WaldurExtension base class for extensibility
- Assembly Pattern: Marketplace loaded last as it depends on others
- Factory Pattern: Extensions create Django apps dynamically
- Observer Pattern: Extensive use of Django signals
- State Machine: FSM-based resource state management
- Mixin Pattern: Code reuse through multiple inheritance
Architecture Strengths
- Modularity: Clean separation of concerns with extension system
- Scalability: Multi-tenant architecture with horizontal scaling
- Extensibility: Plugin system for easy provider addition
- Security: Authentication and authorization layers
- Auditability: Complete event logging and audit trail
- Maintainability: Consistent patterns and well-structured code
- Performance: Optimized queries and caching strategies
Waldur Code Style Guide
Import Organization
- Standards: Use
isortwith sections: future, standard-library, first-party, third-party, local-folder - Placement: ALWAYS place all imports at the top of the module
- Inline Imports: NEVER use inline imports within functions or methods (except for dynamic imports when absolutely necessary)
Formatting
- Formatter: Follow ruff formatting rules
- Line Length: Line length restrictions are ignored (E501)
- Indentation: Use 4 spaces, never tabs
Type Hints
- Version: Python 3.10+ compatibility
- Usage: Use type hints where possible
- Modern Syntax: Use
dict[str, str]instead ofDict[str, str]
Naming Conventions
- Functions/Variables: Use snake_case
- Classes: Use CamelCase
- Constants: Use UPPER_SNAKE_CASE
- Django Models: Follow Django conventions
- Private: Prefix with underscore for internal use
Error Handling
- Core Exceptions: Use exceptions from
waldur_core.core.exceptions - Logging: Add appropriate logging for errors
- Context: Include debugging context in error messages
- Re-raising: Preserve original traceback when re-raising
Documentation
- Docstrings: Required for public methods and classes
- Comments: Avoid unnecessary comments - code should be self-documenting
- TODO: Use
# TODO:format with description and owner
Testing
- Unit Tests: For complex functions
- API Tests: For all endpoints
- Directory Structure: Follow existing test directory structure
- Naming: Test files should match module names with
test_prefix
Serializers
- REST Conventions: Follow Django REST Framework patterns
- Relationships: Use HyperlinkedRelatedField for relationships
- Query Optimization: Implement
eager_load()methods - UUID Fields: ALWAYS use
SlugRelatedField(slug_field="uuid")instead of PrimaryKeyRelatedField
API Schema
- Type Annotations: Use modern syntax (e.g.,
dict[str, str]) - Response Documentation: Avoid verbose dictionary literals
- Simple Actions: Omit unnecessary
responses={status.HTTP_200_OK: None} - OpenAPI: Use
@extend_schemadecorators appropriately
Markdown Documentation
- Linting: ALL markdown must pass
mdl --style markdownlint-style.rb <path> - List Indentation: Use exactly 2 spaces for nested items
- Consistency: Maintain consistent formatting throughout
API Design Consistency
- Default Parameters: Choose defaults that match most common use case
- Error Hierarchy:
- Configuration errors (AttributeError) for invalid code/setup
- Permission errors (PermissionDenied) for access control
- Validation errors for user input
- Function Signatures: Document parameter behavior clearly, especially optional parameters
Important Guidelines
- No Emojis: Avoid emojis unless explicitly requested
- Avoid "Comprehensive": Don't use this word in documentation
- Incremental Changes: Make small, testable changes
- Existing Patterns: Follow established project patterns
Waldur Permission System Guide
Permission Factory Usage
ALWAYS use permission_factory instead of manual has_permission checks in ViewSets.
For ViewSet Actions
1 2 3 4 5 6 7 8 9 | |
Permission Factory Patterns
- Current Object:
permission_factory(PermissionEnum.PERMISSION_NAME)- no path needed - Related Object:
permission_factory(PermissionEnum.PERMISSION_NAME, ["customer"])- for related objects - Nested Path:
permission_factory(PermissionEnum.PERMISSION_NAME, ["project.customer"])- for nested relationships
For perform_create/perform_destroy Methods
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
When to Use Manual Checks
- Complex permission logic that doesn't map to standard object relationships
- Custom validation that requires dynamic permission targets
- Legacy code not yet refactored to declarative patterns
Permission System Behavior
Expiration Handling
- Basic permission queries (
get_users_with_permission,get_scope_ids) include all roles regardless of expiration - Expiration checking is explicit via
has_user(expiration_time=False), not implicit inhas_permission() - Use
has_user(expiration_time=current_time)for time-based validation
Error Handling
permission_factorydoesn't catchAttributeErrorand convert toPermissionDenied- Test for actual exceptions the system raises, not ideal ones
- Handle
AttributeErrorwhen accessing missing nested attributes
Data Accuracy Critical Areas
- User counting: Always use
distinct()on user_id to avoid double-counting users with multiple roles - Permission checks: Handle edge cases (None scope, missing attributes) gracefully
- Financial calculations: Never approximate - exact calculations required
Performance Optimization
Query Optimization Strategy
- Use
select_related()for foreign keys - Use
prefetch_related()for reverse relationships - Use
distinct()for deduplication instead of manual logic - Accept 20-30 queries for complex operations rather than approximations
- Verify permission checks use reasonable query counts (≤3 for most operations)
Waldur Testing Guide
Test Writing Best Practices
1. Understand Actual System Behavior
- Always verify actual behavior before writing tests - Don't assume how the system should work
- Test what the system actually does, not what you think it should do
- Example: Basic permission queries don't automatically filter expired roles
2. Use Existing Fixtures and Factories
- Always use established fixtures - Don't invent your own role names
- Use
CustomerRole.SUPPORTnotCustomerRole.MANAGER(which doesn't exist) - Use
fixtures.ProjectFixture()for consistent test setup with proper relationships - Use
factories.UserFactory()for creating test users with proper defaults
3. Error Handling Reality Check
- Test for actual exceptions, not ideal ones
- If the system raises
AttributeErrorfor missing attributes, test forAttributeError - Only test for
PermissionDeniedwhen the system actually catches and converts errors
4. Mock Objects for Complex Testing
- Use Mock objects effectively for nested permission paths
- Create realistic mock structures:
mock_resource.project.customer = self.customer - Test permission factory with multiple source paths:
["direct_customer", "project.customer"] - Mock objects help test complex scenarios without database overhead
5. Time-Based Testing Patterns
- Understand explicit vs implicit time checking
- Basic
has_permission()doesn't check expiration times automatically - Test boundary conditions: exact expiration time, microseconds past expiration
- Create roles with
timezone.now() ± timedelta()for realistic time testing
6. Integration vs Unit Test Strategy
- Use integration tests for workflows, unit tests for utilities
- Test complete permission flows: role creation → permission assignment → permission checking
- Use
APITransactionTestCasefor integration tests requiring database transactions - Use
TestCasefor simple unit tests of utility functions
7. Performance Testing Considerations
- Include query optimization tests where appropriate
- Use
override_settings(DEBUG=True)to count database queries - Test with multiple users/roles to ensure performance doesn't degrade
8. System Role Protection
- Test that system roles work correctly even when modified
- System roles like
CustomerRole.OWNERshould maintain functionality - Test that role modifications don't break core functionality
- Verify that predefined roles have expected permissions
9. Edge Case Testing
- Test None values, missing attributes, and circular references
- Handle
AttributeErrorwhen accessing missing nested attributes - Test with inactive users, deleted roles, removed permissions
- Verify behavior with complex nested object hierarchies
Test Guidelines
- Test behavior, not implementation
- One assertion per test when possible
- Clear test names describing scenario
- Use existing test utilities/helpers
- Tests should be deterministic
Debugging Complex Systems
When fixing performance or accuracy issues:
- Isolate the problem:
- Run individual failing tests to understand specific issues
- Use
pytest -v -sfor verbose output with print statements -
Check if multiple tests fail for the same underlying reason
-
Understand test expectations:
- Read test comments carefully - they often explain intended behavior
- Check if tests expect specific error types
-
Look for conflicting expectations between test suites
-
Fix systematically:
- Fix one root cause at a time
- After each fix, run full test suite to check for regressions
-
Update related tests for consistency when changing behavior
-
API changes require test updates:
- When changing function signatures or default parameters, expect test failures
- Update tests for consistency rather than reverting functional improvements
- Document parameter behavior changes clearly
Development guidelines
Flow for feature tasks
- Create a new branch from develop
1 2 3 | |
- Perform brilliant work (don't forget about tests!)
- Verify that tests are passing.
- Push all changes to origin (https://code.opennodecloud.com/)
- Create a Merge Request and assign it to a reviewer. Make sure that MR can be merged automatically. If not, resolve the conflicts by merging develop branch into yours:
1 2 | |
- Resolve ticket in JIRA.
Ended: Guides
Ui ↵
API Integration Guide
This guide covers data loading patterns, API client usage, and refresh mechanisms for integrating with the Waldur MasterMind backend.
API Data Loading and Refresh Patterns
The application uses multiple approaches for loading data from REST APIs in forms and handling data refresh operations, showing evolution from legacy Redux patterns to modern React Query implementations.
Data Loading Patterns
React Query/TanStack Query (Modern Approach)
The preferred pattern for new components uses React Query for efficient data fetching:
1 2 3 4 5 6 7 8 9 10 | |
Key Features:
- Automatic Caching: 5-minute stale time for most queries
- Built-in Loading States:
isLoading,error,data - Manual Refresh:
refetch()function for explicit updates - Query Invalidation: Cache invalidation through query keys
- Background Refetching: Automatic background updates
Custom Hook Pattern
Centralized data fetching logic wrapped in reusable hooks:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Benefits:
- Business Logic Integration: Transforms data for UI consumption
- Computed Properties: Adds disabled states and tooltips
- Reusability: Shared across multiple components
- Centralized Error Handling: Consistent error management
Redux/Redux Saga Pattern (Legacy)
Used primarily for table data management:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Characteristics:
- Centralized State: Redux store for table data
- Automatic Pagination: Built-in pagination and filtering
- Request Cancellation: AbortController support
- Periodic Polling: Configurable refresh intervals
Data Refresh Mechanisms
CRUD Operations Refresh
Create Operations:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Edit Operations:
1 2 3 4 5 6 | |
Delete Operations:
1 2 3 4 5 6 | |
Refresh Strategies
| Strategy | Implementation | Use Case |
|---|---|---|
| Explicit Refetch | const { refetch } = useQuery(...); await refetch(); |
Manual refresh after CRUD operations |
| Table Refresh Button | <TableRefreshButton onClick={() => props.fetch(true)} /> |
User-initiated refresh |
| Automatic Polling | pullInterval in Redux saga |
Real-time data updates |
| Query Invalidation | queryClient.invalidateQueries(['queryKey']) |
Cache invalidation |
Error Handling and Loading States
Consistent Error Display
1 2 3 4 5 6 7 8 9 10 | |
Global Error Handling
1 2 3 4 5 6 7 8 9 | |
API Integration Patterns
Waldur JS Client Integration
Primary API client with typed endpoints:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Async Form Field Loading
Dynamic data loading for form fields:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Caching Strategies
React Query Cache
- Query-based caching: Uses query keys for cache management
- Automatic background refetching: Keeps data fresh
- Configurable stale time: Typically 5 minutes for most queries
- Request deduplication: Prevents duplicate requests
Redux Store Cache
- Table data cached: In Redux state for tables
- Manual cache invalidation: Explicit cache clearing
- Optimistic updates: Immediate UI updates for CRUD operations
Best Practices
- New Components: Use React Query with custom hooks
- Error Handling: Consistent use of
LoadingErredcomponent with retry functionality - Caching: 5-minute stale time for most queries, longer for static data
- Refresh Strategy: Always call
refetch()after successful CRUD operations - Loading States: Use
isLoadingstate for UI feedback - API Integration: Prefer
waldur-js-clientover direct fetch calls - Form Validation: Use async validation with API dependency checking
This data loading architecture demonstrates the application's evolution toward modern React patterns while maintaining backward compatibility with existing table infrastructure and Redux-based components.
Migration Patterns
The application shows clear migration from Redux to React Query:
| Aspect | Redux Pattern | React Query Pattern |
|---|---|---|
| Data Loading | Redux actions + sagas | useQuery hooks |
| Caching | Redux store | Query cache |
| Error Handling | Redux error actions | Query error states |
| Loading States | Redux loading flags | isLoading state |
| Refresh | Dispatch actions | refetch() function |
| Polling | Saga intervals | Query refetch intervals |
Architecture Guide
This guide covers the application architecture, design patterns, and organizational structure of Waldur HomePort.
Frontend Stack
- React with TypeScript for component development
- Vite for build tooling and development server
- Redux with Redux Saga for legacy state management
- UI Router React for navigation (state-based routing)
- React Bootstrap (Bootstrap 5) for UI components
- React Final Form for modern form handling
- ECharts for data visualization
- Leaflet with React Leaflet for mapping
- TanStack React Query for server state management
Check Current Versions
Check all major dependencies
yarn list react typescript vite redux @uirouter/react react-bootstrap react-final-form echarts leaflet @tanstack/react-query
Check specific package version
yarn info
Key Architectural Patterns
Module Organization
The codebase follows a feature-based folder structure under src/:
- Each domain (customer, project, marketplace, etc.) has its own folder
- Components are co-located with their specific business logic
- Shared utilities are in
core/andtable/ - API interactions use Redux patterns with sagas
State Management
Modern Patterns (Use for New Development)
- TanStack React Query: Server state management and caching for API calls
- React Final Form: Local form state management
- Local Component State: useState and useReducer for UI state
- Custom Hooks: Reusable state logic and business operations
Legacy Patterns (Maintenance Only - Do Not Extend)
- Redux Store: Global state with dynamic reducer injection (legacy - avoid for new features)
- Redux Saga: Async operations and side effects (legacy - use React Query instead)
- Table Store: Specialized table data management in
src/table/(legacy pattern)
Navigation & Routing
- Uses UI-Router for React with state-based routing
- Routes defined in module-specific
routes.tsfiles - Navigation context provides tab and breadcrumb management
Data Fetching
Modern Approach (Use for New Development)
- TanStack React Query: Preferred for server state management and caching
- Custom Hooks: Reusable data fetching logic with React Query
- Waldur JS Client: TypeScript API client integration
- Automatic Caching: 5-minute stale time with background refetching
Legacy Approach (Maintenance Only)
- Redux Actions/Sagas: Centralized API calls (legacy - use React Query instead)
- Table Store: Standardized data loading patterns (legacy pattern)
- Periodic Polling: Real-time updates through sagas (use React Query polling instead)
Component Architecture
- Container Components: Handle data fetching and state management
- Presentation Components: Pure UI components with props
- Form Components: Specialized forms using React Final Form
- Table Components: Reusable table infrastructure with filtering, sorting, pagination
Key Directories
src/core/- Shared utilities, API clients, and base componentssrc/table/- Reusable table components and data managementsrc/form/- Form components and field implementationssrc/marketplace/- Service marketplace and offering management (largest module)src/customer/- Organization management and billingsrc/project/- Project management and resourcessrc/auth/- Authentication and identity provider integrationsrc/administration/- Admin panel functionalitysrc/azure/- Azure cloud integrationsrc/booking/- Resource booking systemsrc/broadcasts/- System announcementssrc/dashboard/- Dashboard componentssrc/navigation/- Navigation and layout componentssrc/proposals/- Proposal managementsrc/quotas/- Resource quotas managementsrc/theme/- Theme management (dark/light mode)src/user/- User managementsrc/metronic/- UI framework integration
Backend Integration
Integrates with Waldur MasterMind REST API requiring CORS configuration on the backend for local development.
API Client
- Waldur JS Client - Custom API client for Waldur MasterMind
- Auto-generated client with TypeScript support
- Request/response interceptors for authentication and error handling
- Token-based authentication with auto-refresh capabilities
Version Management
Check current version
grep "waldur-js-client" package.json
Check latest available version
yarn info waldur-js-client version
Update to latest version in package.json, then install
yarn install
Build System & Performance
Modern Build Configuration
- Vite 7.0 with ES modules support
- Node.js v23.7.0 (latest LTS) compatibility
- Code splitting with lazy loading for all major features
- Optimized bundle sizes and asset processing
- Source maps for development and production debugging
Performance Optimizations
- Lazy component loading with
lazyComponentutility - Dynamic reducer injection for Redux store
- Automatic code splitting by route and feature
- Optimized asset loading (images, fonts, SVG)
- Bundle analysis and optimization tools
Asset Management
- SVG files processed through SVGR 8.1.0 plugin for React components
- Images and static assets in
src/images/ - Font files managed through Vite's asset pipeline
- Markdown content processed through vite-plugin-markdown
- Monaco Editor 0.52.2 for code editing capabilities
- Sass 1.85.0 for SCSS preprocessing
Environment Variables
VITE_API_URL- Backend API endpoint (defaults to http://localhost:8000/)
Project Overview
Waldur HomePort is a React-based web frontend for the Waldur MasterMind cloud orchestrator. It's a TypeScript application built with Vite that provides a comprehensive management interface for cloud resources, organizations, projects, and marketplace offerings.
Code Quality Standards
This guide covers code quality standards, testing practices, and technical requirements for Waldur HomePort.
Technical Standards
Architecture Principles
- Composition over inheritance - Use dependency injection
- Interfaces over singletons - Enable testing and flexibility
- Explicit over implicit - Clear data flow and dependencies
- Test-driven when possible - Never disable tests, fix them
Code Quality Requirements
- Every commit must:
- Compile successfully
- Pass all existing tests
- Include tests for new functionality
-
Follow project formatting/linting
-
Before committing:
- Run formatters/linters
- Self-review changes
- Ensure commit message explains "why"
Error Handling
- Fail fast with descriptive messages
- Include context for debugging
- Handle errors at appropriate level
- Never silently swallow exceptions
Testing Strategy
Testing Frameworks
- Unit Tests: Vitest with React Testing Library for component testing
- Integration Tests: Cypress for end-to-end workflows
Check Testing Framework Versions
Check current versions
yarn info vitest @testing-library/react cypress version```
- Test files use
.test.ts/.test.tsxextensions - Setup files in
test/setupTests.js - Integrated coverage reporting
Test Guidelines
- Test behavior, not implementation
- One assertion per test when possible
- Clear test names describing scenario
- Use existing test utilities/helpers
- Tests should be deterministic
Test Code Sharing & Mocking
Extracting Common Test Code:
- Extract shared test data into separate files (e.g.,
test-utils.ts) - Only mock what's actually imported by the component under test
- Don't mock exports that aren't used - it adds unnecessary complexity
- Verify import paths match actual usage (e.g.,
./constantsvs@waldur/marketplace/common/constants)
Vitest Mocking Constraints:
vi.mock()calls must be at the top level, not inside functions- Vitest hoists mocks, so they can't reference variables defined later
- Share test data as exported constants, not function calls
- Mock the exact module path used in the component's imports
Example Pattern:
1 2 3 4 5 6 7 8 9 10 11 | |
Code Duplication Detection:
- CI/CD uses
jscpdwith strict thresholds (typically 250 tokens) - Extract common patterns properly - don't game the detector with formatting
- Shared test utilities reduce duplication and improve maintainability
Development Guidelines
TypeScript Configuration
- Uses
@waldur/*path mapping for internal imports - Strict TypeScript checking disabled for legacy compatibility
- Module resolution set to "Bundler" for Vite compatibility
Code Style
- ESLint with flat config format enforced with TypeScript, React, and accessibility rules
- Prettier for code formatting (2 spaces, semicolons, single quotes)
- Import ordering enforced with
@waldurimports grouped separately - SCSS/CSS linting with Stylelint
- Husky for git hooks and pre-commit checks
Check Code Style Tool Versions
``` Check current versions
yarn info eslint prettier stylelint husky version```
TypeScript and SDK Types
- Always prefer SDK types over custom types from
waldur-js-clientpackage - Import types using
typekeyword:import { type ComponentUsageCreateRequest } from 'waldur-js-client' - Common SDK types to use instead of custom interfaces:
ResourcePlanPeriod- for plan periods with componentsBaseComponentUsage- for component usage data in periodsComponentUsageCreateRequest- for usage submission request bodiesComponentUserUsageCreateRequest- for user usage submission request bodiesComponentUsage- for general component usage data- All marketplace API request/response types are available in the SDK
- When using React Final Form, use standard pattern:
<Field component={NumberField as any} /> - Convert between SDK string types and numbers when necessary (e.g.,
parseFloat(component.usage)) - Handle nullable SDK types properly with optional chaining (
period.value?.components)
Tooling
Essential Commands
Code Quality
yarn lint:check- Run ESLint checksyarn lint:fix- Fix ESLint issues automaticallyyarn format:check- Check code formatting with Prettieryarn format:fix- Auto-format code with Prettieryarn style:check- Check SCSS/CSS styles with Stylelintyarn deps:unused- Check for unused dependencies with Knipyarn tsc- Typescript type check
Testing
yarn test- Run unit tests with Vitestyarn ci:test- Run full integration test suite with Cypressyarn ci:run- Run Cypress tests headless
Dependency Management
yarn deps:unused- Find unused dependencies and exports with Knipyarn deps:circular- Check for circular dependencies with Madge
Tooling Standards
- Use project's existing build system
- Use project's test framework
- Use project's formatter/linter settings
- Don't introduce new tools without strong justification
Quality Assurance
Code Quality & Analysis
- Knip for unused dependency detection
- Madge for circular dependency analysis
- Lint-staged for pre-commit code formatting
- PostCSS with autoprefixer and cssnano for CSS optimization
Modern Development Practices
- ESM (ES Modules) throughout the codebase
- TypeScript with comprehensive typing
- Flat ESLint config format
- Husky git hooks for automated quality checks
- Yarn package management with lockfile integrity
Component Library Guide
This guide covers the comprehensive set of reusable UI components and specialized patterns used throughout Waldur HomePort.
Common UI Widgets and Reusable Components
The application features a comprehensive set of reusable UI components organized by category:
Tables and Data Display
| Component | Location | Description | Key Features |
|---|---|---|---|
| Table | src/table/Table.tsx |
Main table component | Filtering, sorting, pagination, column visibility, export |
| ActionButton | src/table/ActionButton.tsx |
Reusable action button | Tooltip, loading state, multiple variants |
| ActionsDropdown | src/table/ActionsDropdown.tsx |
Dropdown for table actions | Bulk operations, contextual actions |
| ExpandableContainer | src/table/ExpandableContainer.tsx |
Collapsible row details | Table row expansion, detail views |
| TablePagination | src/table/TablePagination.tsx |
Pagination controls | Page navigation, size selection |
Forms and Input Components
| Component | Location | Description | Key Features |
|---|---|---|---|
| WizardForm | src/form/WizardForm.tsx |
Multi-step form wizard | Step navigation, validation, progress indicator |
| VStepperFormStepCard | src/form/VStepperFormStep.tsx |
Card-based form step | Loading state, disabled state with tooltip |
| AwesomeCheckbox | src/core/AwesomeCheckbox.tsx |
Enhanced checkbox | Switch-style, tooltip support |
| SelectField | src/form/SelectField.tsx |
Dropdown selection | Options, search, validation |
| StringField | src/form/StringField.tsx |
Text input field | Validation, placeholder, help text |
| NumberField | src/form/NumberField.tsx |
Numeric input | Min/max validation, step control |
| DateField | src/form/DateField.tsx |
Date picker | Date selection, validation |
| FileUploadField | src/form/FileUploadField.tsx |
File upload | Drag & drop, validation |
| MarkdownEditor | src/form/MarkdownEditor.tsx |
Markdown editor | Preview, syntax highlighting |
| SecretField | src/form/SecretField.tsx |
Password/secret input | Show/hide toggle, validation |
| SubmitButton | src/form/SubmitButton.tsx |
Submit button | Loading state, disabled state |
Modal and Dialog Components
| Component | Location | Description | Key Features |
|---|---|---|---|
| ModalDialog | src/modal/ModalDialog.tsx |
Base modal component | Header, body, footer, icon support |
| ConfirmationDialog | src/modal/ConfirmationDialog.tsx |
Confirmation modal | Destructive actions, custom text |
| ActionDialog | src/modal/ActionDialog.tsx |
Generic action dialog | Form support, validation |
Navigation Components
| Component | Location | Description | Key Features |
|---|---|---|---|
| TabsList | src/navigation/TabsList.tsx |
Tab navigation | Nested dropdowns, active detection |
| Layout | src/navigation/Layout.tsx |
Application layout | Responsive, sidebar, header |
| Breadcrumbs | src/navigation/header/breadcrumb/Breadcrumbs.tsx |
Navigation breadcrumbs | Hierarchical navigation |
Cards and Layout Components
| Component | Location | Description | Key Features |
|---|---|---|---|
| Panel | src/core/Panel.tsx |
Basic card panel | Header, actions, flexible content |
| AccordionCard | src/core/AccordionCard.tsx |
Collapsible card | Toggle functionality, custom styling |
| WidgetCard | src/dashboard/WidgetCard.tsx |
Dashboard widget | Flexible layout, action dropdown |
| StatisticsCard | src/core/StatisticsCard.tsx |
Statistics display | Large value display, "View all" link |
Data Display Components
| Component | Location | Description | Key Features |
|---|---|---|---|
| Badge | src/core/Badge.tsx |
Status indicator | Multiple variants, icon support, tooltip |
| StateIndicator | src/core/StateIndicator.tsx |
Status with animation | Loading animation, color variants |
| BooleanBadge | src/core/BooleanBadge.tsx |
Boolean indicator | Yes/No display, true/false states |
| TruncatedText | src/core/TruncatedText.tsx |
Responsive text | Automatic truncation, expandable |
| TruncatedDescription | src/core/TruncatedDescription.tsx |
Description text | Read more/less functionality |
| ImagePlaceholder | src/core/ImagePlaceholder.tsx |
Image fallback | Automatic sizing, circular option |
| Avatar | src/core/Avatar.tsx |
User avatar | Profile pictures, initials fallback |
Loading and State Components
| Component | Location | Description | Key Features |
|---|---|---|---|
| LoadingSpinner | src/core/LoadingSpinner.tsx |
Loading indicator | Consistent styling, size variants |
| LoadingErred | src/core/LoadingErred.tsx |
Error state display | Error handling, retry actions |
Chart and Visualization
| Component | Location | Description | Key Features |
|---|---|---|---|
| EChart | src/core/EChart.tsx |
Apache ECharts wrapper | Theme support, export functionality |
| EChartActions | src/core/EChartActions.tsx |
Chart actions | Export buttons, chart controls |
Utility Components
| Component | Location | Description | Key Features |
|---|---|---|---|
| CopyToClipboard | src/core/CopyToClipboard.tsx |
Copy functionality | Click to copy, success feedback |
| CopyToClipboardButton | src/core/CopyToClipboardButton.tsx |
Copy button | Icon button, tooltip |
| Tooltip | src/core/Tooltip.tsx |
Tooltip wrapper | Help text, positioning |
| ProgressSteps | src/core/ProgressSteps.tsx |
Step indicator | Multi-step processes, progress |
Component Design Principles
- TypeScript interfaces for comprehensive type safety
- Consistent styling using React Bootstrap and custom classes
- Accessibility features with proper ARIA attributes
- Responsive design with mobile-first approach
- Theme support with light/dark mode compatibility
- Loading states with integrated spinner functionality
- Error handling with proper error boundaries
- Internationalization with translate function usage
These components provide a comprehensive foundation for building consistent, accessible, and maintainable UI throughout the Waldur HomePort application.
BaseDeployPage Component Pattern
The BaseDeployPage component (located at src/marketplace/deploy/DeployPage.tsx) serves as the central foundation for all marketplace offering deployment/ordering flows. It provides a standardized, multi-step form interface that can be configured for different types of cloud resources and services.
Architecture and Purpose
BaseDeployPage handles:
- Step Management: Progressive form steps with validation and completion tracking
- State Management: Integration with Redux for form state and user selections
- Form Validation: Real-time validation and error display
- Layout Management: Sidebar layout with progress tracking
- API Integration: Order submission and error handling
- Context-Aware Initialization: Auto-populates organization/project based on context
Key Configuration Interface
1 2 3 4 5 6 7 8 9 10 | |
Step Definition Structure
1 2 3 4 5 6 7 8 9 10 | |
Usage Example: OpenstackInstanceOrder
1 2 3 4 | |
Step Configuration:
1 2 3 4 5 6 7 8 9 10 | |
Common Implementation Pattern
All offering types follow the same pattern:
- Define Steps: Create array of
OfferingConfigurationFormStepobjects - Wrap BaseDeployPage: Pass steps as
inputFormStepsprop - Register in Marketplace: Register in
src/marketplace/common/registry.ts
Other Examples:
OpenstackVolumeOrder- Volume deploymentOpenstackTenantOrder- Tenant creationRancherOrderForm- Rancher cluster deploymentRequestOrderForm- Support requests
Key Features
Dynamic Step Filtering
1 2 3 4 5 6 7 | |
Progressive Validation
- Tracks completed steps based on required field validation
- Uses scroll position to mark optional steps as "seen"
- Real-time validation feedback with error display
Multiple Operation Modes
- Create Mode: New resource deployment
- Update Mode: Editing existing orders with pre-populated values
- Preview Mode: Read-only display of form steps
Integration with Marketplace System
Registry Configuration
1 2 3 4 5 6 7 8 | |
Sidebar Integration
The DeployPageSidebar provides:
- Progress tracking with step completion status
- Error display for validation issues
- Checkout summary with pricing information
- Order summary customizable per offering type
Best Practices
- Consistent Step Structure: All offering types use the same step interface
- Lazy Loading: Components are lazy-loaded for better performance
- Type Safety: Strong TypeScript typing throughout
- Reusable Components: Common steps like
DetailsOverviewStepare shared - Error Handling: Comprehensive validation and error display
- Accessibility: Proper ARIA labels and keyboard navigation
The BaseDeployPage component represents a well-architected, reusable foundation that allows different cloud services to implement their specific deployment workflows while maintaining consistency across the marketplace experience.
Type-Specific Fields in Redux Forms
The application uses a sophisticated type-based field selection system for creating dynamic Redux forms, exemplified by the SupportSettingsForm.tsx component.
Core Pattern: Dynamic Field Selection
The primary pattern uses a FieldRow component that selects appropriate field types based on configuration:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Field Type System
The application supports these field types:
string- Basic text input usingStringFieldboolean- Checkbox usingAwesomeCheckboxFieldemail_field- Email input with validation usingEmailFieldtext_field- Multi-line text usingTextFieldinteger- Numeric input usingNumberFieldsecret_field- Password/secret input usingSecretField
Redux Form Integration
All fields are wrapped with Redux Form's Field component and FormGroup:
1 2 3 4 5 6 7 8 | |
Base FormField Interface
All field components extend the FormField interface for consistent props:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Configuration-Driven Forms
Forms are generated from configuration objects:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Field Configuration Structure
1 2 3 4 5 6 | |
Advanced Field Factory Pattern
For more complex scenarios, the system uses a comprehensive field factory:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Validation and Error Handling
The system provides comprehensive validation through:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Best Practices for Type-Safe Forms
- Consistent Type Strings: Use standardized type identifiers across field configurations
- Fallback Strategy: Always provide a default field type (typically
StringField) - Props Interface: Extend the base
FormFieldinterface for type safety - Validator Composition: Use
composeValidatorsfor complex validation logic - Error Handling: Integrate with Redux Form's meta.touched state for error display
- Configuration-Driven: Use data structures to define forms rather than hardcoding
This type-specific field system enables dynamic form generation while maintaining type safety and consistent user experience across the application.
Development Setup Guide
This guide covers development environment setup, build configuration, and essential commands for Waldur HomePort development.
Essential Commands
Development
yarn start- Start development server (runs on port 8001)yarn devcontainer- Start dev server for containerized development (binds to 0.0.0.0:8001)yarn build- Create production buildyarn preview- Preview production build
Code Quality
yarn lint:check- Run ESLint checksyarn lint:fix- Fix ESLint issues automaticallyyarn format:check- Check code formatting with Prettieryarn format:fix- Auto-format code with Prettieryarn style:check- Check SCSS/CSS styles with Stylelintyarn deps:unused- Check for unused dependencies with Knipyarn tsc- Typescript type check
Testing
yarn test- Run unit tests with Vitestyarn ci:test- Run full integration test suite with Cypressyarn ci:run- Run Cypress tests headless
Dependency Management
yarn deps:unused- Find unused dependencies and exports with Knipyarn deps:circular- Check for circular dependencies with Madge
Version Management
Check current dependency versions
yarn list --depth=0
Check for outdated packages
yarn outdated
Check specific package version
yarn info <package-name> version
After updating version in package.json, install dependencies
yarn install
Update all dependencies to latest versions (use with caution)
yarn upgrade
Build System & Performance
Modern Build Configuration
- Vite with ES modules support
- Node.js (latest LTS) compatibility
- Code splitting with lazy loading for all major features
- Optimized bundle sizes and asset processing
- Source maps for development and production debugging
Check Build Tool Versions
node --version yarn --version yarn info vite version
Performance Optimizations
- Lazy component loading with
lazyComponentutility - Dynamic reducer injection for Redux store
- Automatic code splitting by route and feature
- Optimized asset loading (images, fonts, SVG)
- Bundle analysis and optimization tools
Key Development Tools
Code Quality & Analysis
- Knip for unused dependency detection
- Madge for circular dependency analysis
- Lint-staged for pre-commit code formatting
- PostCSS with autoprefixer and cssnano for CSS optimization
Modern Development Practices
- ESM (ES Modules) throughout the codebase
- TypeScript with comprehensive typing
- Flat ESLint config format
- Husky git hooks for automated quality checks
- Yarn package management with lockfile integrity
Check Development Tool Versions
yarn info typescript eslint prettier husky version
Asset Management
- SVG files processed through SVGR plugin for React components
- Images and static assets in
src/images/ - Font files managed through Vite's asset pipeline
- Markdown content processed through vite-plugin-markdown
- Monaco Editor for code editing capabilities
- Sass for SCSS preprocessing
Check Asset Processing Tool Versions
Check current versions
yarn info @svgr/rollup-plugin vite-plugin-markdown monaco-editor sass version
Environment Variables
VITE_API_URL- Backend API endpoint (defaults to http://localhost:8000/)
Backend Integration
Integrates with Waldur MasterMind REST API requiring CORS configuration on the backend for local development.
API Client
- Waldur JS Client - Custom API client for Waldur MasterMind
- Auto-generated client with TypeScript support
- Request/response interceptors for authentication and error handling
- Token-based authentication with auto-refresh capabilities
Version Management
Check current version
grep "waldur-js-client" package.json
Check latest available version
yarn info waldur-js-client version
Update to latest version in package.json, then install
yarn install
Development Environment Setup
Prerequisites
- Node.js (latest LTS - check with
node --version) - Yarn package manager (check with
yarn --version) - Backend Waldur MasterMind API running (typically on port 8000)
Check Prerequisites
Verify Node.js version (should be latest LTS)
node --version
Verify Yarn installation
yarn --version
Check if backend API is running
curl -I <http://localhost:8000/api/>
Initial Setup
- Install dependencies:
yarn install - Configure environment variables in
.envfile - Start development server:
yarn start - Access application at
<http://localhost:8001>
Docker Development
For containerized development:
- Use
yarn devcontainerto start server bound to1.1.1.0:8001 - Ensure proper network configuration for container access
IDE Configuration
- TypeScript support with path mapping for
@waldur/*imports - ESLint and Prettier integration for code formatting
- Vitest integration for test running and debugging
Development Workflow
This guide covers the development process, planning strategies, and workflow best practices for Waldur HomePort.
Philosophy
Core Beliefs
- Incremental progress over big bangs - Small changes that compile and pass tests
- Learning from existing code - Study and plan before implementing
- Pragmatic over dogmatic - Adapt to project reality
- Clear intent over clever code - Be boring and obvious
Simplicity Means
- Single responsibility per function/class
- Avoid premature abstractions
- No clever tricks - choose the boring solution
- If you need to explain it, it's too complex
Process
1. Planning & Staging
Break complex work into 3-5 stages. Document in IMPLEMENTATION_PLAN.md:
1 2 3 4 5 | |
- Update status as you progress
- Remove file when all stages are done
2. Implementation Flow
- Understand - Study existing patterns in codebase
- Test - Write test first (red)
- Implement - Minimal code to pass (green)
- Refactor - Clean up with tests passing
- Commit - With clear message linking to plan
3. When Stuck (After 3 Attempts)
CRITICAL: Maximum 3 attempts per issue, then STOP.
- Document what failed:
- What you tried
- Specific error messages
-
Why you think it failed
-
Research alternatives:
- Find 2-3 similar implementations
-
Note different approaches used
-
Question fundamentals:
- Is this the right abstraction level?
- Can this be split into smaller problems?
-
Is there a simpler approach entirely?
-
Try different angle:
- Different library/framework feature?
- Different architectural pattern?
- Remove abstraction instead of adding?
Decision Framework
When multiple valid approaches exist, choose based on:
- Testability - Can I easily test this?
- Readability - Will someone understand this in 6 months?
- Consistency - Does this match project patterns?
- Simplicity - Is this the simplest solution that works?
- Reversibility - How hard to change later?
Project Integration
Learning the Codebase
- Find 3 similar features/components
- Identify common patterns and conventions
- Use same libraries/utilities when possible
- Follow existing test patterns
Important Reminders
NEVER:
- Use
--no-verifyto bypass commit hooks - Disable tests instead of fixing them
- Commit code that doesn't compile
- Make assumptions - verify with existing code
ALWAYS:
- Commit working code incrementally
- Update plan documentation as you go
- Learn from existing implementations
- Stop after 3 failed attempts and reassess
Form Migration Guide
The application contains 200+ form components across two patterns, showing gradual migration from Redux Form to React Final Form.
Form Patterns Comparison
| Aspect | Redux Form (Legacy, 59.5%) | React Final Form (Modern, 30.5%) | VStepperForm (Multi-step, 10%) |
|---|---|---|---|
| State Storage | Redux store | Local component state | Shared across steps |
| Performance | Can cause unnecessary re-renders | Optimized subscription model | Step-based validation |
| Complexity | More boilerplate required | Minimal boilerplate | Step progression |
| Persistence | Persists across unmounts | Local to component lifecycle | Visual progress indicators |
| Integration | Deep Redux integration | Isolated, no external dependencies | Complex deployments |
Implementation Examples
Redux Form (Legacy)
1 2 3 4 5 6 | |
React Final Form (Modern)
1 2 3 4 5 6 7 8 9 10 | |
Field Group Pattern
React Final Form uses reusable field groups for better organization:
1 2 3 4 5 6 7 8 9 10 | |
Benefits: Separation of concerns, reusability, maintainability, testability
Key Patterns & Best Practices
Validation
1 2 | |
Async Data Integration
1 2 3 4 | |
Modern Form Submission
1 2 3 4 5 6 7 8 9 | |
Migration Strategy
- New Components: Use React Final Form
- Legacy Components: Maintain Redux Form
- Hybrid Support: Common field components work with both
- Gradual Migration: Phase out Redux Form over time
Migration Detailed Guidelines
Form Distribution
- Redux Form (Legacy): 119 forms (59.5%) - being phased out
- React Final Form (Modern): 61 forms (30.5%) - preferred for new development
- VStepperForm (Multi-step): 20 forms (10%) - complex deployments
Key Forms by Category
- User/Auth: SigninForm, KeyCreateDialog (React Final Form)
- Projects: ProjectCreateDialog (React Final Form), team management (Redux Form)
- Resources: OpenStack/VMware/Azure provider configs (mostly Redux Form)
- Administration: Mixed - newer ones use React Final Form
- Marketplace: DeployForm (Redux Form), newer policy forms (React Final Form)
Post-Migration Cleanup
Essential Commands:
1 2 3 4 | |
Cleanup Checklist:
- Remove unused Redux Form constants (
FORM_ID) - Convert exported interfaces to internal if only used within component
- Delete orphaned Redux Form files
- Update imports to remove unused dependencies
- Verify form context boundaries for React Final Form
- Test modal structure and submit button access
Error Handling Migration
Issue: Avoid unhandled promise rejections when migrating error handling.
Solution: Don't re-throw errors after showErrorResponse():
1 2 3 4 5 6 7 8 9 10 11 | |
Component Migration Patterns
Key Changes in Migration
- Form State: Redux Form HOC → React Final Form
<Form>component - Initial Values:
useEffectwithchangeaction →initialValuesprop - Error Handling: Redux actions →
useNotifyhook - Component Structure:
FormContainerwrapper → render prop pattern
Field Migration
1 2 3 4 5 6 7 8 9 | |
Array Field Migration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
SDK Types Best Practices
- Use
import { type ComponentUsage } from 'waldur-js-client' - Prefer SDK types over custom interfaces
- Handle type conversions:
parseFloat(component.usage)
Modal Form Architecture Migration
Key Issue: React Final Form context boundaries - submit buttons must be inside <Form> component.
Problem: useFormState called outside form context:
1 2 3 4 | |
Solution: Move submit button inside form context:
1 2 3 4 5 6 7 8 9 | |
Migration Steps:
- Move submit button inside
<Form>render function - Use
modal-footerclass for styling consistency - Remove
footerprop fromModalDialog - Test form state access (
useFormState,useField)
FormGroup Components
Two Types Available:
@waldur/form/FormGroup- Redux Form wrapper with comprehensive state management@waldur/marketplace/offerings/FormGroup- Simple wrapper for labels/help text (preferred for React Final Form)
FormGroup Migration Patterns
Replace Manual Label/Field Combinations
1 2 3 4 5 6 7 8 9 10 11 12 | |
Convert Manual Tooltips to Help Props
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Best Practices
- Props Effectiveness:
hideLabel,spacelessdon't work with direct Field usage - CSS Classes: Verify classes exist (avoid non-existent Tailwind classes like
space-y-4) - Translations: Make all text including prepositions translatable
- FormGroup Choice: Use marketplace FormGroup for React Final Form
Architecture Benefits
- Flexibility: Multiple form approaches for different use cases
- Consistency: Shared field components across form systems
- Performance: Modern forms use optimized re-rendering
- Maintainability: Clear separation between legacy and modern patterns
- Developer Experience: Reduced boilerplate in new forms
Multilingual user interface
Workflow looks as following:
Markup TSX code using translate function. For example:
translate('User details')
Always mark complete sentences for translation. If you combine fragments at runtime, there is no way for the translator to construct a proper sentence in their language. Do not combine strings together at runtime.
If you need to render JSX element inside of translated string, you should use formatJsxTemplate function:
1 2 3 4 | |
If translated string should be rendered inside of JSX element, you should use formatJsx function:
1 2 3 4 5 | |
Translation template is created automatically. It will extract strings from TS and TSX files and put it in template.json. JSON files are synced with Localazy service by GitLab CI pipelines. Current user locale is stored in auth storage.
Role-based access control
Introduction
Waldur authorization system determines what user can do. It consists of permissions and roles. Permission is unique string designating action to be executed. Role is named set of permissions.
Permissions are defined in PermissionEnum which is automatically generated from backend code and pushed to fronted code by GitLab CI. Most of the time you're going to use hasPermission function which checks, whether user is allowed to perform action on given customer, project or offering. The following example shows how to check whether user is allowed to create offering in organization.
1 2 3 4 5 6 7 | |
Migration examples
Previously we have relied on hard-coded roles, such as customer owner and project manager. Migration to dynamic roles on frontend is relatively straightforward process. Consider the following example.
1 2 3 4 5 6 7 8 9 | |
As you may see, we have relied on selectors with hard-coded roles. The main drawback of this approach is that it is very hard to inspect who can do what without reading all source code. And it is even hard to adjust this behaviour. Contrary to its name, by using dynamic roles we don't need to care much about roles though.
1 2 3 4 5 6 7 8 9 10 | |
The only prerequisite of course is to ensure that backend uses dynamic roles too.
Local pipeline for developers: OpenAPI -> TypeScript SDK -> Homeport
This document describes the process of generating and linking the Waldur TypeScript SDK for local development. Although the SDK code is published to GitHub and npm repositories, a local pipeline is essential for developers who need to make changes to the SDK without using GitLab CI or work with the very latest OpenAPI definitions from Waldur MasterMind before they are officially released.
Prerequisites
Before proceeding, ensure you have the following installed and configured:
- poetry: For managing Python dependencies in Waldur MasterMind.
- npx: Comes with Node.js, used for executing Node.js package binaries.
- yarn: For managing JavaScript dependencies in Waldur HomePort and Waldur TypeScript SDK.
- Waldur MasterMind: Cloned and set up in a directory named
waldur-mastermind. - Waldur HomePort: Cloned and set up in a directory named
waldur-homeport. - Waldur TypeScript SDK: Cloned and set up in a directory named
js-client.
Steps to generate and link the SDK
These steps outline the process of generating the TypeScript SDK from the Waldur MasterMind OpenAPI schema and linking it to Waldur HomePort for local development.
- Generate the OpenAPI schema.
This command uses
waldur spectacularto generate thewaldur-openapi-schema.yamlfile. Inwaldur-masterminddirectory, run:
1 | |
- Generate TypeScript code from the OpenAPI schema.
This step uses
@hey-api/openapi-tsto convert the OpenAPI schema into TypeScript client code. Inwaldur-masterminddirectory, run:
1 2 3 4 5 6 7 8 9 | |
- Building a local version of the Waldur SDK with Yarn.
In the
js-clientdirectory, run:
1 | |
- Linking a local version of the Waldur SDK with Yarn.
In the
js-clientdirectory, run:
1 | |
- Enable locally installed Waldur SDK in Waldur HomePort.
This command will symlink your local Waldur SDK into Waldur HomePort for development and testing. In
waldur-homeportdirectory, run:
1 | |
Table component
- State management is done via
useTableReact hook. - Table rendering is done using
Tablecomponent.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
Column definition consists of two mandatory fields: title and render.
fetchData property
The fetchData property is a function that retrieves data for the table. It should return a promise that resolves to an object containing rows and resultCount. The fetchData function can be customized to fetch data from any API endpoint and transform it as needed before passing it to the table.
Example:
1 2 3 4 | |
Export feature
Table component supports data export functionality. To enable it:
- Add
enableExportprop to the Table component - Configure export options in column definitions:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Optionally, specify exportTitle property for columns to customize the header in the exported file:
1 2 3 4 5 6 | |
Optional columns
Table component supports optional columns that can be toggled by users. Optional columns allow users to customize their view by showing/hiding specific columns.
- Add
hasOptionalColumnsprop to enable optional columns functionality -
Configure columns with:
id- unique column identifierkeys- defines which fields should be requested from API (allows optimization by fetching only needed fields)optional- mark column as optional to allow toggling
-
For actions column, you can specify mandatory fields that should always be fetched from API using
mandatoryFieldsprop.
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | |
Ordering feature
Table component supports column ordering. To enable it:
- Add
enableOrderingprop to the Table component - Configure columns with
orderFieldproperty to specify which field should be used for ordering
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
When ordering is enabled, clicking on column headers will toggle between ascending and descending order.
Filters feature
Filters are defined using the filters prop of the Table component. This prop accepts a React component that renders the filter UI.
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
Inline filters
The feature allows users to quickly filter table data by clicking values directly in the table cells, without manually setting filters. When column has inlineFilter property enabled:
- A filter icon appears when hovering over cells in that column
- Clicking the icon adds a filter using the cell's value
- The
inlineFilterfunction transforms row data into the filter value format
Example:
1 2 3 4 5 6 7 8 9 10 | |
Grid mode
Table component supports switching between table and grid views. In grid mode, data is displayed as cards in a responsive grid layout.
To enable grid mode:
- Add
gridItemprop to specify the component used to render each item in grid view - Optionally customize grid layout using
gridSizeprop which accepts Bootstrap column properties - Set
initialModeto 'grid' if you want grid view by default (table view is default)
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Terminology policy
We prefer British English over American English. For example, we use cancelled instead of canceled.
Should be applied for naming buttons, separate pages of the process and in list of actions.
Add / Remove
Should be used when an action of creating/adding or deleting/removing is applied to:
- Organizations
- Projects
- Providers
- VMs
- Applications
- SLA
- SSH key
- Team members
Import / Unlink
Should be used when an action of importing or unlinking / deleting a record without undeploying is applied to:
- VMs
Please use "synchronise" instead of "pull" in action title.
Mocking HTTP Requests for Unit Tests
When writing unit tests for frontend components, it's crucial to isolate the component from external dependencies, especially network requests. Mocking HTTP requests allows us to simulate API responses and test our components in a predictable and controlled environment. This guide describes how to use nock, got, and React Testing Library (RTL) to achieve this.
By following these patterns, you can effectively mock HTTP requests in your unit tests, leading to more robust and reliable components.
Key Libraries
- Nock: A powerful HTTP server mocking and expectations library for Node.js. It allows you to intercept outgoing HTTP requests and provide custom responses.
- Got: A human-friendly and powerful HTTP request library for Node.js. We use it in tests to trigger the mocked endpoints and wait for
nockto resolve them. - React Testing Library (RTL): A library for testing React components in a way that resembles how users interact with them.
Basic Setup
To ensure a clean testing environment for each test case, we should set up nock before each test and clean up the mocks afterward. This is typically done in beforeEach and afterEach blocks.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
Mocking Different Scenarios
Successful GET Request
The example above shows a basic successful GET request. You can customize the response data to fit your test case.
1 2 3 4 5 6 | |
Mocking Failed Requests
To test how your component handles API errors, you can mock a request to return an error status code.
1 2 3 4 5 6 7 8 9 10 11 | |
Testing
Unit tests
Unit tests are used for testing React components and utilities. They are written in .test.ts or .test.tsx files located next to the code they test.
Run tests using yarn test command.
Unit tests use written using:
- Vitest as the test runner
- @testing-library/react for testing React components
- @testing-library/user-event for simulating user interactions
Integration tests
Integration tests are implemented using Cypress framework.
- Run all tests headless (CI mode):
yarn ci:test - Open Cypress GUI (requires dev server running):
yarn cypress open
Integration tests are located in:
cypress/e2e/- Test specificationscypress/fixtures/- Test datacypress/support/- Custom commands and utilities
Ended: Ui
Ad-hoc scripts
This section describes different ad-hoc scripts used by Waldur developers.
Usage-related scripts
Restore CPU/GPU/RAM usages for a month
Sometimes, Waldur can have issues with data correctness. They can be caused by different circumstansies, e.g. problems with data syncronization between Waldur backend and service provider software. In order to resolve these issues, a user can restore usage data with restore_usages.py script.
Generate openmetrics file with usages for several months
If a user needs to create openmetrics file with usages, e.g. for historical data backfilling in Prometheus, the generate_openmetrics_usages.py can be used.
Wipe tenants and all related resources from OpenStack
If a user needs to remove a tenant with all related objects (instances, volumes, backups, etc.) manually, this script should be used. It removes all the tenants with names from tenant_names list using an OpenStack administrator project. Please, replace <main-tenant-uuid> (line 13) with the corresponding UUID of the admin tenant in Waldur.
Import projects with slug info
A CSV-file with the following format is required:
1 2 | |
Put this file to the /tmp/projects-info.csv location and
execute this script with your Waldur shell.
Migrate legacy SLURM allocations to a new SLURM-remote offering
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | |
Events
Eventgroup.access_subnets
- access_subnet_creation_succeeded
- access_subnet_deletion_succeeded
- access_subnet_update_succeeded
Eventgroup.auth
- auth_logged_in_with_username
- auth_logged_out
- auth_login_failed_with_username
- token_created
- token_lifetime_updated
Eventgroup.call
- call_document_added
- call_document_removed
Eventgroup.credits
- allowed_offerings_have_been_updated
- create_of_credit_by_staff
- reduction_of_customer_credit
- reduction_of_customer_credit_due_to_minimal_consumption
- reduction_of_customer_expected_consumption
- reduction_of_project_credit
- reduction_of_project_credit_due_to_minimal_consumption
- reduction_of_project_expected_consumption
- roll_back_customer_credit
- roll_back_project_credit
- set_to_zero_overdue_credit
- update_of_credit_by_staff
Eventgroup.customers
- allowed_offerings_have_been_updated
- create_of_credit_by_staff
- customer_creation_succeeded
- customer_deletion_succeeded
- customer_update_succeeded
- payment_added
- payment_removed
- reduction_of_customer_credit
- reduction_of_customer_credit_due_to_minimal_consumption
- reduction_of_customer_expected_consumption
- reduction_of_project_credit
- reduction_of_project_credit_due_to_minimal_consumption
- reduction_of_project_expected_consumption
- roll_back_customer_credit
- roll_back_project_credit
- set_to_zero_overdue_credit
- update_of_credit_by_staff
Eventgroup.invoices
- allowed_offerings_have_been_updated
- create_of_credit_by_staff
- invoice_canceled
- invoice_created
- invoice_item_created
- invoice_item_deleted
- invoice_item_updated
- invoice_paid
- payment_created
- payment_removed
- reduction_of_customer_credit
- reduction_of_customer_credit_due_to_minimal_consumption
- reduction_of_customer_expected_consumption
- reduction_of_project_credit
- reduction_of_project_credit_due_to_minimal_consumption
- reduction_of_project_expected_consumption
- roll_back_customer_credit
- roll_back_project_credit
- set_to_zero_overdue_credit
- update_of_credit_by_staff
Eventgroup.offering_accounting
- marketplace_offering_component_created
- marketplace_offering_component_deleted
- marketplace_offering_component_updated
- marketplace_plan_archived
- marketplace_plan_component_current_price_updated
- marketplace_plan_component_future_price_updated
- marketplace_plan_component_quota_updated
- marketplace_plan_created
- marketplace_plan_deleted
- marketplace_plan_updated
Eventgroup.permissions
- role_granted
- role_revoked
- role_updated
Eventgroup.projects
- project_creation_succeeded
- project_deletion_succeeded
- project_deletion_triggered
- project_update_request_approved
- project_update_request_created
- project_update_request_rejected
- project_update_succeeded
Eventgroup.proposal
- proposal_canceled
- proposal_document_added
- proposal_document_removed
Eventgroup.providers
- marketplace_resource_create_canceled
- marketplace_resource_create_failed
- marketplace_resource_create_requested
- marketplace_resource_create_succeeded
- marketplace_resource_terminate_failed
- marketplace_resource_terminate_requested
- marketplace_resource_terminate_succeeded
- marketplace_resource_update_failed
- marketplace_resource_update_limits_failed
- marketplace_resource_update_limits_succeeded
- marketplace_resource_update_requested
- resource_robot_account_created
- resource_robot_account_deleted
- resource_robot_account_state_changed
- resource_robot_account_updated
Eventgroup.resources
- marketplace_order_approved
- marketplace_order_completed
- marketplace_order_created
- marketplace_order_failed
- marketplace_order_rejected
- marketplace_order_terminated
- marketplace_order_unlinked
- marketplace_resource_create_canceled
- marketplace_resource_create_failed
- marketplace_resource_create_requested
- marketplace_resource_create_succeeded
- marketplace_resource_downscaled
- marketplace_resource_erred_on_backend
- marketplace_resource_paused
- marketplace_resource_terminate_canceled
- marketplace_resource_terminate_failed
- marketplace_resource_terminate_requested
- marketplace_resource_terminate_succeeded
- marketplace_resource_unlinked
- marketplace_resource_update_canceled
- marketplace_resource_update_end_date_succeeded
- marketplace_resource_update_failed
- marketplace_resource_update_limits_failed
- marketplace_resource_update_limits_succeeded
- marketplace_resource_update_requested
- marketplace_resource_update_succeeded
- openstack_floating_ip_attached
- openstack_floating_ip_connected
- openstack_floating_ip_description_updated
- openstack_floating_ip_detached
- openstack_floating_ip_disconnected
- openstack_network_cleaned
- openstack_network_created
- openstack_network_deleted
- openstack_network_imported
- openstack_network_pulled
- openstack_network_updated
- openstack_port_cleaned
- openstack_port_created
- openstack_port_deleted
- openstack_port_imported
- openstack_port_pulled
- openstack_port_updated
- openstack_router_updated
- openstack_security_group_cleaned
- openstack_security_group_created
- openstack_security_group_deleted
- openstack_security_group_imported
- openstack_security_group_pulled
- openstack_security_group_rule_cleaned
- openstack_security_group_rule_created
- openstack_security_group_rule_deleted
- openstack_security_group_rule_imported
- openstack_security_group_rule_updated
- openstack_security_group_updated
- openstack_server_group_cleaned
- openstack_server_group_created
- openstack_server_group_deleted
- openstack_server_group_imported
- openstack_server_group_pulled
- openstack_subnet_cleaned
- openstack_subnet_created
- openstack_subnet_deleted
- openstack_subnet_imported
- openstack_subnet_pulled
- openstack_subnet_updated
- openstack_tenant_quota_limit_updated
- resource_assign_floating_ip_failed
- resource_assign_floating_ip_scheduled
- resource_assign_floating_ip_succeeded
- resource_attach_failed
- resource_attach_scheduled
- resource_attach_succeeded
- resource_change_flavor_failed
- resource_change_flavor_scheduled
- resource_change_flavor_succeeded
- resource_creation_failed
- resource_creation_scheduled
- resource_creation_succeeded
- resource_deletion_failed
- resource_deletion_scheduled
- resource_deletion_succeeded
- resource_detach_failed
- resource_detach_scheduled
- resource_detach_succeeded
- resource_extend_failed
- resource_extend_scheduled
- resource_extend_succeeded
- resource_extend_volume_failed
- resource_extend_volume_scheduled
- resource_extend_volume_succeeded
- resource_import_succeeded
- resource_pull_failed
- resource_pull_scheduled
- resource_pull_succeeded
- resource_restart_failed
- resource_restart_scheduled
- resource_restart_succeeded
- resource_retype_failed
- resource_retype_scheduled
- resource_retype_succeeded
- resource_robot_account_created
- resource_robot_account_deleted
- resource_robot_account_state_changed
- resource_robot_account_updated
- resource_start_failed
- resource_start_scheduled
- resource_start_succeeded
- resource_stop_failed
- resource_stop_scheduled
- resource_stop_succeeded
- resource_unassign_floating_ip_failed
- resource_unassign_floating_ip_scheduled
- resource_unassign_floating_ip_succeeded
- resource_update_allowed_address_pairs_failed
- resource_update_allowed_address_pairs_scheduled
- resource_update_allowed_address_pairs_succeeded
- resource_update_floating_ips_failed
- resource_update_floating_ips_scheduled
- resource_update_floating_ips_succeeded
- resource_update_ports_failed
- resource_update_ports_scheduled
- resource_update_ports_succeeded
- resource_update_security_groups_failed
- resource_update_security_groups_scheduled
- resource_update_security_groups_succeeded
- resource_update_succeeded
Eventgroup.review
- review_canceled
Eventgroup.ssh
- ssh_key_creation_succeeded
- ssh_key_deletion_succeeded
Eventgroup.support
- attachment_created
- attachment_deleted
- attachment_updated
- issue_creation_succeeded
- issue_deletion_succeeded
- issue_update_succeeded
Eventgroup.users
- auth_logged_in_with_saml2
- auth_logged_out_with_saml2
- freeipa_profile_created
- freeipa_profile_deleted
- freeipa_profile_disabled
- freeipa_profile_enabled
- marketplace_offering_user_created
- marketplace_offering_user_deleted
- marketplace_offering_user_restriction_updated
- ssh_key_creation_succeeded
- ssh_key_deletion_succeeded
- user_activated
- user_creation_succeeded
- user_deactivated
- user_deletion_succeeded
- user_details_update_succeeded
- user_has_been_created_by_staff
- user_password_updated
- user_password_updated_by_staff
- user_update_succeeded
Registered Handlers
This document lists all registered signal handlers found in the system.
Application: waldur_auth_saml2
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
update_registration_method |
Unknown Signal |
core.User |
Update user's registration method to SAML2. |
Application: waldur_autoprovisioning
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
handle_new_user |
Django Signal (post_save) |
core.User |
Create project and order for new user based on autoprovisioning rules. |
Application: waldur_core
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
change_email_has_been_requested |
Django Signal (post_save) |
core.ChangeEmailRequest |
Send a notification when a user requests to change their email. |
change_users_quota |
Custom Signal (role_granted) |
— |
Update the user count quota for a customer when a user's role is changed. |
change_users_quota |
Custom Signal (role_revoked) |
— |
Update the user count quota for a customer when a user's role is changed. |
constance_updated |
Custom Signal (config_updated) |
— |
Clear the API configuration cache when a Constance setting is updated. |
create_auth_token |
Django Signal (post_save) |
core.User |
Create a token for a new user. |
create_existing_projects_completions |
Django Signal (post_save) |
structure.Customer |
Create ChecklistCompletion for existing projects when customer checklist is updated. |
create_notification_about_permission_request_has_been_submitted |
Django Signal (post_save) |
users.PermissionRequest |
Send a notification when a permission request has been submitted. |
create_project_metadata_completion |
Django Signal (post_save) |
structure.Project |
Create ChecklistCompletion for project metadata when a project is created. |
deactivate_user_if_no_roles |
Custom Signal (role_revoked) |
— |
Deactivate a user if they no longer have any active roles. |
delete_error_message |
Custom Signal (post_transition) |
structure.ServiceSettings |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
structure.SharedServiceSettings |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
structure.PrivateServiceSettings |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_aws.Instance |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_aws.Volume |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.ResourceGroup |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.StorageAccount |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.Network |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.SubNet |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.SecurityGroup |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.NetworkInterface |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.PublicIP |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.VirtualMachine |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.SQLServer |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_azure.SQLDatabase |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_digitalocean.Droplet |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
google.GoogleCalendar |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.Tenant |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.ServerGroup |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.SecurityGroup |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.FloatingIP |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.Router |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.Network |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.SubNet |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.Port |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.Volume |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.Snapshot |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.Instance |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
openstack.Backup |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_openstack_replication.Migration |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_rancher.Cluster |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_rancher.Node |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_rancher.HPA |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_rancher.Application |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_rancher.Ingress |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_rancher.Service |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_slurm.Allocation |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_vmware.VirtualMachine |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_vmware.Port |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_vmware.Disk |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
waldur_firecrest.Job |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
support.Issue |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
support.Comment |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
support.Attachment |
Delete error message if instance state changed from erred |
delete_error_message |
Custom Signal (post_transition) |
support.Feedback |
Delete error message if instance state changed from erred |
delete_project_metadata_completions |
Django Signal (post_save) |
structure.Customer |
Delete ChecklistCompletions when customer's project metadata checklist is removed. |
delete_quotas_when_model_is_deleted |
Django Signal (pre_delete) |
structure.Customer |
Delete all quotas related to a model when it is deleted. |
delete_quotas_when_model_is_deleted |
Django Signal (pre_delete) |
structure.Project |
Delete all quotas related to a model when it is deleted. |
delete_quotas_when_model_is_deleted |
Django Signal (pre_delete) |
structure.ServiceSettings |
Delete all quotas related to a model when it is deleted. |
delete_quotas_when_model_is_deleted |
Django Signal (pre_delete) |
structure.SharedServiceSettings |
Delete all quotas related to a model when it is deleted. |
delete_quotas_when_model_is_deleted |
Django Signal (pre_delete) |
structure.PrivateServiceSettings |
Delete all quotas related to a model when it is deleted. |
delete_quotas_when_model_is_deleted |
Django Signal (pre_delete) |
openstack.Tenant |
Delete all quotas related to a model when it is deleted. |
delete_quotas_when_model_is_deleted |
Django Signal (pre_delete) |
marketplace.Category |
Delete all quotas related to a model when it is deleted. |
delete_quotas_when_model_is_deleted |
Django Signal (pre_delete) |
marketplace.Offering |
Delete all quotas related to a model when it is deleted. |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_aws.Instance |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_aws.Volume |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.ResourceGroup |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.StorageAccount |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.Network |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.SubNet |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.SecurityGroup |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.NetworkInterface |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.PublicIP |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.VirtualMachine |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.SQLServer |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_azure.SQLDatabase |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_digitalocean.Droplet |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.Tenant |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.ServerGroup |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.SecurityGroup |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.FloatingIP |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.Router |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.Network |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.SubNet |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.Port |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.Volume |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.Snapshot |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.Instance |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
openstack.Backup |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_rancher.Cluster |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_rancher.Application |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_rancher.Ingress |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_rancher.Service |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_slurm.Allocation |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_vmware.VirtualMachine |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_vmware.Port |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_vmware.Disk |
If VM that contains service settings were deleted - all settings |
delete_service_settings_on_scope_delete |
Django Signal (pre_delete) |
waldur_firecrest.Job |
If VM that contains service settings were deleted - all settings |
delete_stale_event_subscriptions |
Django Signal (post_delete) |
authtoken.Token |
Delete stale event subscriptions for a user when their token is deleted. |
handle_aggregated_quotas |
Django Signal (post_save) |
quotas.QuotaUsage |
Call aggregated quotas fields update methods |
handle_aggregated_quotas |
Django Signal (pre_delete) |
quotas.QuotaUsage |
Call aggregated quotas fields update methods |
log_access_subnet_deletion_succeeded |
Django Signal (post_delete) |
structure.AccessSubnet |
Log successful access subnet deletion. |
log_access_subnet_save |
Django Signal (post_save) |
structure.AccessSubnet |
Log access subnet creation and updates. |
log_customer_delete |
Django Signal (post_delete) |
structure.Customer |
Log customer deletion. |
log_customer_save |
Django Signal (post_save) |
structure.Customer |
Log customer creation and updates. |
log_project_delete |
Django Signal (post_delete) |
structure.Project |
Log project deletion. |
log_project_save |
Django Signal (post_save) |
structure.Project |
Log project creation and updates. |
log_resource_action |
Custom Signal (post_transition) |
waldur_aws.Instance |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_aws.Volume |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.ResourceGroup |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.StorageAccount |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.Network |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.SubNet |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.SecurityGroup |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.NetworkInterface |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.PublicIP |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.VirtualMachine |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.SQLServer |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_azure.SQLDatabase |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_digitalocean.Droplet |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.Tenant |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.ServerGroup |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.SecurityGroup |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.FloatingIP |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.Router |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.Network |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.SubNet |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.Port |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.Volume |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.Snapshot |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.Instance |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
openstack.Backup |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_rancher.Cluster |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_rancher.Application |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_rancher.Ingress |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_rancher.Service |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_slurm.Allocation |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_vmware.VirtualMachine |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_vmware.Port |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_vmware.Disk |
Log resource state transitions. |
log_resource_action |
Custom Signal (post_transition) |
waldur_firecrest.Job |
Log resource state transitions. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_aws.Instance |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_aws.Volume |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.ResourceGroup |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.StorageAccount |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.Network |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.SubNet |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.SecurityGroup |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.NetworkInterface |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.PublicIP |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.VirtualMachine |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.SQLServer |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_azure.SQLDatabase |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_digitalocean.Droplet |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.Tenant |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.ServerGroup |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.SecurityGroup |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.FloatingIP |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.Router |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.Network |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.SubNet |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.Port |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.Volume |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.Snapshot |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.Instance |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
openstack.Backup |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_rancher.Cluster |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_rancher.Application |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_rancher.Ingress |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_rancher.Service |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_slurm.Allocation |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_vmware.VirtualMachine |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_vmware.Port |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_vmware.Disk |
Log scheduled resource creation. |
log_resource_creation_scheduled |
Django Signal (post_save) |
waldur_firecrest.Job |
Log scheduled resource creation. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_aws.Instance |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_aws.Volume |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.ResourceGroup |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.StorageAccount |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.Network |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.SubNet |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.SecurityGroup |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.NetworkInterface |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.PublicIP |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.VirtualMachine |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.SQLServer |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_azure.SQLDatabase |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_digitalocean.Droplet |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.Tenant |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.ServerGroup |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.SecurityGroup |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.FloatingIP |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.Router |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.Network |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.SubNet |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.Port |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.Volume |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.Snapshot |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.Instance |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
openstack.Backup |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_rancher.Cluster |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_rancher.Application |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_rancher.Ingress |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_rancher.Service |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_slurm.Allocation |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_vmware.VirtualMachine |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_vmware.Port |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_vmware.Disk |
Log resource deletion. |
log_resource_deleted |
Django Signal (pre_delete) |
waldur_firecrest.Job |
Log resource deletion. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_aws.Instance |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_aws.Volume |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.ResourceGroup |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.StorageAccount |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.Network |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.SubNet |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.SecurityGroup |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.NetworkInterface |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.PublicIP |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.VirtualMachine |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.SQLServer |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_azure.SQLDatabase |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_digitalocean.Droplet |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.Tenant |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.ServerGroup |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.SecurityGroup |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.FloatingIP |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.Router |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.Network |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.SubNet |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.Port |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.Volume |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.Snapshot |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.Instance |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
openstack.Backup |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_rancher.Cluster |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_rancher.Application |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_rancher.Ingress |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_rancher.Service |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_slurm.Allocation |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_vmware.VirtualMachine |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_vmware.Port |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_vmware.Disk |
Log resource import. |
log_resource_imported |
Custom Signal (resource_imported) |
waldur_firecrest.Job |
Log resource import. |
log_role_granted |
Custom Signal (role_granted) |
— |
Log the event of a user being granted a role. |
log_role_revoked |
Custom Signal (role_revoked) |
— |
Log the event of a user having a role revoked. |
log_role_updated |
Custom Signal (role_updated) |
— |
Log the event of a user's role being updated. |
log_ssh_key_delete |
Django Signal (post_delete) |
core.SshPublicKey |
Log SSH key deletion events. |
log_ssh_key_save |
Django Signal (post_save) |
core.SshPublicKey |
Log SSH key creation events. |
log_token_create |
Django Signal (post_save) |
authtoken.Token |
Log token creation events. |
log_user_delete |
Django Signal (post_delete) |
core.User |
Log user deletion events. |
log_user_save |
Django Signal (post_save) |
core.User |
Log user creation, update, and activation/deactivation events. |
permissions_request_approved |
Custom Signal (permissions_request_approved) |
users.PermissionRequest |
Send a notification when a permission request has been approved. |
preserve_fields_before_update |
Django Signal (pre_save) |
core.User |
Preserve fields of a user instance before it is updated. |
process_hook |
Django Signal (post_save) |
logging.Event |
Process a hook for a given event. |
projects_customer_has_been_changed |
Custom Signal (project_moved) |
structure.Project |
Recalculate quotas when a project's customer has been changed. |
recalculate_count_quota |
Django Signal (post_save) |
structure.Project |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_aws.Instance |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_aws.Volume |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.ResourceGroup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.StorageAccount |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.Network |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.SubNet |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.SecurityGroup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.NetworkInterface |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.PublicIP |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.VirtualMachine |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.SQLServer |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_azure.SQLDatabase |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_digitalocean.Droplet |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.Tenant |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.ServerGroup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.SecurityGroup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.FloatingIP |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.Router |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.Network |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.SubNet |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.Port |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.Volume |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.Snapshot |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.Instance |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
openstack.Backup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_rancher.Cluster |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_rancher.Application |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_rancher.Ingress |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_rancher.Service |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_slurm.Allocation |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_vmware.VirtualMachine |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_vmware.Port |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_vmware.Disk |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
waldur_firecrest.Job |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_save) |
marketplace.Order |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
structure.Project |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_aws.Instance |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_aws.Volume |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.ResourceGroup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.StorageAccount |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.Network |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.SubNet |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.SecurityGroup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.NetworkInterface |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.PublicIP |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.VirtualMachine |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.SQLServer |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_azure.SQLDatabase |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_digitalocean.Droplet |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.Tenant |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.ServerGroup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.SecurityGroup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.FloatingIP |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.Router |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.Network |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.SubNet |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.Port |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.Volume |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.Snapshot |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.Instance |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
openstack.Backup |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_rancher.Cluster |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_rancher.Application |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_rancher.Ingress |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_rancher.Service |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_slurm.Allocation |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_vmware.VirtualMachine |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_vmware.Port |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_vmware.Disk |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
waldur_firecrest.Job |
Recalculate count quota when an instance is created or deleted. |
recalculate_count_quota |
Django Signal (post_delete) |
marketplace.Order |
Recalculate count quota when an instance is created or deleted. |
revoke_roles_on_project_deletion |
Django Signal (pre_delete) |
structure.Project |
When project is deleted, all project permissions are cascade deleted |
set_default_token_lifetime |
Django Signal (post_save) |
core.User |
Set the default token lifetime for a new user. |
update_customer_users_count |
Custom Signal (recalculate_quotas) |
— |
Update the user count for all customers. |
update_resource_start_time |
Django Signal (post_save) |
waldur_aws.Instance |
Update the start time of a resource when its runtime state changes. |
update_resource_start_time |
Django Signal (post_save) |
waldur_azure.VirtualMachine |
Update the start time of a resource when its runtime state changes. |
update_resource_start_time |
Django Signal (post_save) |
waldur_digitalocean.Droplet |
Update the start time of a resource when its runtime state changes. |
update_resource_start_time |
Django Signal (post_save) |
openstack.Instance |
Update the start time of a resource when its runtime state changes. |
Application: waldur_freeipa
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
log_profile_deleted |
Django Signal (pre_delete) |
waldur_freeipa.Profile |
Log FreeIPA profile deletion events. |
log_profile_event |
Django Signal (pre_save) |
waldur_freeipa.Profile |
Log FreeIPA profile creation, enable, and disable events. |
schedule_ssh_key_sync_when_key_is_created |
Django Signal (post_save) |
core.SshPublicKey |
Schedule an SSH key synchronization task when a key is created. |
schedule_ssh_key_sync_when_key_is_deleted |
Django Signal (pre_delete) |
core.SshPublicKey |
Schedule an SSH key synchronization task when a key is deleted. |
schedule_sync |
Django Signal (post_save) |
structure.Customer |
Schedule a synchronization task. |
schedule_sync |
Django Signal (post_save) |
structure.Project |
Schedule a synchronization task. |
schedule_sync |
Django Signal (pre_delete) |
structure.Customer |
Schedule a synchronization task. |
schedule_sync |
Django Signal (pre_delete) |
structure.Project |
Schedule a synchronization task. |
schedule_sync |
Custom Signal (role_granted) |
— |
Schedule a synchronization task. |
schedule_sync |
Custom Signal (role_revoked) |
— |
Schedule a synchronization task. |
schedule_sync_on_quota_change |
Django Signal (post_save) |
quotas.QuotaLimit |
Schedule a synchronization task when a quota is changed. |
update_user |
Django Signal (post_save) |
core.User |
Update a user's FreeIPA profile when their user account is updated. |
Application: waldur_lexis
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
request_ssh_key_for_heappe_robot_account |
Django Signal (post_save) |
marketplace.RobotAccount |
Request an SSH key for a HEAppE robot account. |
Application: waldur_mastermind
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
add_call_managing_organization_uuid |
Custom Signal (pre_serializer_fields) |
CustomerSerializer |
Add a call managing organization UUID field to the serializer. |
add_customer_credit |
Custom Signal (pre_serializer_fields) |
CustomerSerializer |
Add a customer credit field to the serializer. |
add_customer_unallocated_credit |
Custom Signal (pre_serializer_fields) |
CustomerSerializer |
Add a customer unallocated credit field to the serializer. |
add_google_calendar_info |
Custom Signal (pre_serializer_fields) |
ProviderOfferingDetailsSerializer |
Add a Google Calendar info field to the serializer. |
add_google_calendar_info |
Custom Signal (pre_serializer_fields) |
PublicOfferingDetailsSerializer |
Add a Google Calendar info field to the serializer. |
add_google_calendar_link |
Custom Signal (pre_serializer_fields) |
ProviderOfferingDetailsSerializer |
Add a Google Calendar link field to the serializer. |
add_google_calendar_link |
Custom Signal (pre_serializer_fields) |
PublicOfferingDetailsSerializer |
Add a Google Calendar link field to the serializer. |
add_integration_status |
Custom Signal (pre_serializer_fields) |
ProviderOfferingDetailsSerializer |
Add an integration status field to the serializer. |
add_issue |
Custom Signal (pre_serializer_fields) |
OrderDetailsSerializer |
Add an issue field to the serializer. |
add_maintenance_fields_to_admin_announcement_serializer |
Custom Signal (pre_serializer_fields) |
AdminAnnouncementSerializer |
Add maintenance-related fields to AdminAnnouncementSerializer when maintenance is scheduled. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackFloatingIPSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackSecurityGroupSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackServerGroupSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackPortSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackNetworkSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackSubNetSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackSnapshotSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackBackupSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
AwsInstanceSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
AzureVirtualMachineSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
DigitalOceanDropletSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackInstanceSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
AwsVolumeSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
AzureResourceGroupSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
AzureSqlServerSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
AzurePublicIPSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
AzureSqlDatabaseSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackTenantSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackRouterSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
OpenStackVolumeSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
RancherClusterSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
RancherApplicationSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
RancherIngressSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
RancherServiceSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
SlurmAllocationSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
VmwareVirtualMachineSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
VmwarePortSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_offering |
Custom Signal (pre_serializer_fields) |
VmwareDiskSerializer |
Add marketplace offering related fields to the serializer. |
add_marketplace_resource_count |
Custom Signal (pre_serializer_fields) |
ProjectSerializer |
Add a marketplace resource count field to the serializer. |
add_marketplace_resource_uuid |
Custom Signal (pre_serializer_fields) |
OpenStackNestedVolumeSerializer |
Add a marketplace resource UUID field to the serializer. |
add_payment_profile |
Custom Signal (pre_serializer_fields) |
CustomerSerializer |
Add a payment profile field to the serializer. |
add_price_estimate |
Custom Signal (pre_serializer_fields) |
ProjectSerializer |
Add a billing price estimate field to the serializer. |
add_price_estimate |
Custom Signal (pre_serializer_fields) |
ProjectEstimatedCostPolicySerializer |
Add a billing price estimate field to the serializer. |
add_price_estimate |
Custom Signal (pre_serializer_fields) |
CustomerSerializer |
Add a billing price estimate field to the serializer. |
add_price_estimate |
Custom Signal (pre_serializer_fields) |
CustomerEstimatedCostPolicySerializer |
Add a billing price estimate field to the serializer. |
add_project_credit |
Custom Signal (pre_serializer_fields) |
ProjectSerializer |
Add a project credit field to the serializer. |
add_promotion_campaigns |
Custom Signal (pre_serializer_fields) |
PublicOfferingDetailsSerializer |
Add promotion campaigns to the serializer. |
add_router_external_ips |
Custom Signal (pre_serializer_fields) |
OpenStackRouterSerializer |
Add router external IPs to the serializer. |
add_service_provider |
Custom Signal (pre_serializer_fields) |
CustomerSerializer |
Add a service provider field to the serializer. |
add_service_provider_url |
Custom Signal (pre_serializer_fields) |
CustomerSerializer |
Add a service provider URL field to the serializer. |
add_service_provider_uuid |
Custom Signal (pre_serializer_fields) |
CustomerSerializer |
Add a service provider UUID field to the serializer. |
apply_campaign_to_pending_invoices |
Django Signal (post_save) |
promotions.Campaign |
Apply campaign discounts to pending invoices and create discounted resources. |
archive_offering |
Django Signal (pre_delete) |
openstack.Tenant |
Archive marketplace offerings when OpenStack tenant is deleted. |
change_order_state |
Django Signal (post_save) |
waldur_azure.VirtualMachine |
Change the state of an order based on resource state changes. |
change_order_state |
Django Signal (post_save) |
waldur_azure.SQLServer |
Change the state of an order based on resource state changes. |
change_order_state |
Django Signal (post_save) |
waldur_azure.SQLDatabase |
Change the state of an order based on resource state changes. |
change_order_state |
Django Signal (post_save) |
openstack.Instance |
Change the state of an order based on resource state changes. |
change_order_state |
Django Signal (post_save) |
openstack.Volume |
Change the state of an order based on resource state changes. |
change_order_state |
Django Signal (post_save) |
openstack.Tenant |
Change the state of an order based on resource state changes. |
change_order_state |
Django Signal (post_save) |
waldur_rancher.Cluster |
Change the state of an order based on resource state changes. |
change_order_state |
Django Signal (post_save) |
waldur_slurm.Allocation |
Change the state of an order based on resource state changes. |
change_order_state |
Django Signal (post_save) |
waldur_vmware.VirtualMachine |
Change the state of an order based on resource state changes. |
cleanup_admin_announcement_on_maintenance_deletion |
Django Signal (pre_delete) |
marketplace.MaintenanceAnnouncement |
Ensure AdminAnnouncement is cleaned up when MaintenanceAnnouncement is deleted. |
close_customer_service_accounts_on_customer_deletion |
Django Signal (pre_delete) |
structure.Customer |
Close service accounts associated with a customer when the customer is deleted. |
close_resource_plan_period_when_resource_is_terminated |
Django Signal (post_save) |
marketplace.Resource |
Handle case when resource has been terminated by service provider. |
close_service_accounts_on_project_deletion |
Django Signal (pre_delete) |
structure.Project |
Close service accounts associated with a project when the project is deleted. |
copy_invoice_item_from_openstack |
Django Signal (post_save) |
invoices.InvoiceItem |
No description |
copy_invoice_items_when_cluster_is_provisioned |
Django Signal (post_save) |
marketplace.Resource |
Copy invoice items from parent project to provisioned Rancher cluster resource. |
create_checklist_completion |
Django Signal (post_save) |
proposal.Proposal |
Create checklist completion tracking when proposal is created. |
create_feedback_if_issue_has_been_resolved |
Django Signal (post_save) |
support.Issue |
Create feedback request when support issue transitions to resolved state. |
create_issue_if_membership_changed |
Django Signal (post_save) |
permissions.UserRole |
Create support issue when user role membership changes in organization. |
create_marketplace_resource_for_imported_cluster |
Custom Signal (resource_imported) |
waldur_rancher.Cluster |
Create marketplace resource when Rancher cluster is imported from external system. |
create_marketplace_resource_for_imported_resources |
Custom Signal (resource_imported) |
waldur_azure.VirtualMachine |
No description |
create_marketplace_resource_for_imported_resources |
Custom Signal (resource_imported) |
openstack.Instance |
No description |
create_marketplace_resource_for_imported_resources |
Custom Signal (resource_imported) |
openstack.Volume |
No description |
create_marketplace_resource_for_imported_resources |
Custom Signal (resource_imported) |
openstack.Tenant |
No description |
create_offering_component_for_volume_type |
Django Signal (post_save) |
openstack.VolumeType |
Create marketplace offering component when OpenStack volume type is created. |
create_offering_from_tenant |
Django Signal (post_save) |
openstack.Tenant |
No description |
create_offering_user_checklist_completions |
Django Signal (post_save) |
marketplace.OfferingUser |
Create checklist completions for OfferingUser when created. |
create_offering_user_for_new_resource |
Custom Signal (resource_creation_succeeded) |
marketplace.Resource |
Create an offering user for a new resource. |
create_offering_user_for_rancher_user |
Django Signal (post_save) |
waldur_rancher.RancherUser |
No description |
create_offering_user_for_slurm_user |
Custom Signal (slurm_association_created) |
waldur_slurm.Allocation |
No description |
create_offering_users_when_project_role_granted |
Custom Signal (role_granted) |
— |
Create offering users when a project role is granted. |
create_price_estimate |
Django Signal (post_save) |
structure.Project |
Create price estimate when customer or project is created. |
create_price_estimate |
Django Signal (post_save) |
structure.Customer |
Create price estimate when customer or project is created. |
create_public_cluster_ip_for_floating_ip |
Django Signal (post_save) |
openstack.FloatingIP |
No description |
create_recurring_usage_if_invoice_has_been_created |
Django Signal (post_save) |
invoices.Invoice |
No description |
create_request_when_project_is_updated |
Django Signal (post_save) |
structure.Project |
No description |
create_resource_of_volume_if_instance_created |
Django Signal (post_save) |
marketplace.Resource |
No description |
create_resource_plan_period_when_resource_is_created |
Django Signal (post_save) |
marketplace.Resource |
Create a resource plan period when a resource is created. |
create_screenshot_thumbnail |
Django Signal (post_save) |
marketplace.Screenshot |
Create a thumbnail for a screenshot. |
customer_credit_changed_handler |
Django Signal (post_save) |
invoices.CustomerCredit |
Handle customer credit value changes and evaluate related policies. |
customer_credit_offerings_list_changed_handler |
Django Signal (m2m_changed) |
CustomerCredit_offerings |
No description |
customer_estimated_cost_policy_trigger_handler |
Django Signal (post_save) |
invoices.InvoiceItem |
Evaluate customer cost policies when invoice items are updated. |
delete_checklist_completion |
Django Signal (pre_delete) |
proposal.Proposal |
Remove checklist completion tracking when proposal is deleted. |
delete_expired_project_if_every_resource_has_been_terminated |
Django Signal (post_save) |
marketplace.Resource |
Delete an expired project if all its resources have been terminated. |
delete_offering_component_for_volume_type |
Django Signal (post_delete) |
openstack.VolumeType |
No description |
delete_offering_user_checklist_completions |
Django Signal (pre_delete) |
marketplace.OfferingUser |
Delete related checklist completions when OfferingUser is deleted. |
delete_remote_project |
Django Signal (post_delete) |
structure.Project |
No description |
delete_service_setting_when_offering_is_deleted |
Django Signal (post_delete) |
marketplace.Offering |
Delete service settings when an offering is deleted. |
delete_stale_price_estimate |
Django Signal (pre_delete) |
structure.Project |
Delete price estimates when customer or project is deleted. |
delete_stale_price_estimate |
Django Signal (pre_delete) |
structure.Customer |
Delete price estimates when customer or project is deleted. |
disable_archived_service_settings_without_existing_resource |
Django Signal (post_save) |
marketplace.Resource |
Disable archived service settings if there are no existing resources. |
disable_service_settings_without_existing_resource_when_archived |
Django Signal (post_save) |
marketplace.Offering |
Disable service settings without existing resources when an offering is archived. |
drop_offering_user_for_rancher_user |
Django Signal (pre_delete) |
waldur_rancher.RancherUser |
No description |
drop_offering_user_for_slurm_user |
Custom Signal (slurm_association_deleted) |
waldur_slurm.Allocation |
No description |
emit_invoice_created_event |
Django Signal (post_save) |
invoices.Invoice |
Emit invoice created signal when invoice state changes to CREATED. |
enable_service_settings_when_not_archived |
Django Signal (post_save) |
marketplace.Offering |
Enable service settings when an offering is not archived. |
enable_service_settings_with_existing_resource |
Django Signal (post_save) |
marketplace.Resource |
Enable service settings if there are existing resources. |
handle_openstack_tenant_order_creation |
Django Signal (post_save) |
marketplace.Order |
No description |
handle_openstack_tenant_order_termination |
Django Signal (post_save) |
marketplace.Order |
No description |
handler |
Django Signal (post_save) |
marketplace.Resource |
No description |
handler |
Django Signal (post_save) |
invoices.InvoiceItem |
No description |
handler |
Django Signal (post_save) |
marketplace.ComponentUsage |
No description |
import_instances_and_volumes_if_tenant_has_been_imported |
Custom Signal (resource_imported) |
openstack.Tenant |
No description |
import_instances_and_volumes_if_tenant_has_been_imported |
Custom Signal (tenant_pull_succeeded) |
openstack.Tenant |
No description |
import_resource_metadata_when_resource_is_created |
Django Signal (post_save) |
marketplace.Resource |
Import OpenStack resource metadata when marketplace resource is created. |
init_resource_parent |
Django Signal (post_save) |
marketplace.Resource |
Initialize the parent resource for a newly created resource. |
limit_update_failed |
Custom Signal (resource_limit_update_failed) |
marketplace.Resource |
Handle failed limit updates. |
limit_update_succeeded |
Custom Signal (resource_limit_update_succeeded) |
marketplace.Resource |
Handle successful limit updates. |
log_attachment_delete |
Django Signal (post_delete) |
support.Attachment |
No description |
log_attachment_save |
Django Signal (post_save) |
support.Attachment |
No description |
log_credit |
Django Signal (post_save) |
invoices.CustomerCredit |
No description |
log_invoice_item_delete |
Django Signal (post_delete) |
invoices.InvoiceItem |
No description |
log_invoice_item_save |
Django Signal (post_save) |
invoices.InvoiceItem |
No description |
log_invoice_state_transition |
Django Signal (post_save) |
invoices.Invoice |
No description |
log_issue_delete |
Django Signal (post_delete) |
support.Issue |
No description |
log_issue_save |
Django Signal (post_save) |
support.Issue |
No description |
log_offering_role_created_or_updated |
Django Signal (post_save) |
marketplace.OfferingUserRole |
Log offering role creation and updates. |
log_offering_role_deleted |
Django Signal (post_delete) |
marketplace.OfferingUserRole |
Log offering role deletion. |
log_offering_user_created |
Django Signal (post_save) |
marketplace.OfferingUser |
Log offering user creation. |
log_offering_user_deleted |
Django Signal (post_delete) |
marketplace.OfferingUser |
Log offering user deletion. |
log_order_events |
Django Signal (post_save) |
marketplace.Order |
Log order creation and state transition events. |
log_request_events |
Django Signal (post_save) |
marketplace_remote.ProjectUpdateRequest |
No description |
log_resource_events |
Django Signal (post_save) |
marketplace.Resource |
Log resource creation request events. |
log_resource_robot_account_created_or_updated |
Django Signal (post_save) |
marketplace.RobotAccount |
Log resource robot account creation and updates. |
log_resource_robot_account_deleted |
Django Signal (post_delete) |
marketplace.RobotAccount |
Log resource robot account deletion. |
log_resource_user_created |
Django Signal (post_save) |
marketplace.ResourceUser |
Log resource user creation. |
log_resource_user_deleted |
Django Signal (post_delete) |
marketplace.ResourceUser |
Log resource user deletion. |
log_service_account_created_or_updated |
Django Signal (post_save) |
ScopedServiceAccount |
Log service account creation and updates. |
log_service_account_deleted |
Django Signal (post_delete) |
ScopedServiceAccount |
Log service account deletion. |
manage_maintenance_admin_announcements |
Django Signal (post_save) |
marketplace.MaintenanceAnnouncement |
Manage AdminAnnouncement lifecycle based on MaintenanceAnnouncement state changes. |
mark_synced_fields_as_read_only |
Custom Signal (pre_serializer_fields) |
OfferingOptionsUpdateSerializer |
No description |
mark_synced_fields_as_read_only |
Custom Signal (pre_serializer_fields) |
OfferingOverviewUpdateSerializer |
No description |
notify_about_project_details_update |
Django Signal (post_save) |
marketplace_remote.ProjectUpdateRequest |
No description |
notify_about_request_based_item_creation |
Django Signal (post_save) |
support.Issue |
No description |
notify_approvers_when_order_is_created |
Django Signal (post_save) |
marketplace.Order |
Notify approvers when an order is created. |
notify_user_about_rejected_order |
Django Signal (post_save) |
marketplace.Order |
Notify user about rejected order. |
offering_component_has_been_created_or_updated |
Django Signal (post_save) |
marketplace.OfferingComponent |
Log offering component creation and updates. |
offering_component_has_been_deleted |
Django Signal (post_delete) |
marketplace.OfferingComponent |
Log offering component deletion. |
offering_has_been_created_or_updated |
Django Signal (post_save) |
marketplace.Offering |
Log offering creation and state updates. |
on_resource_post_save |
Django Signal (post_save) |
marketplace.Resource |
Handle resource state changes and billing events. |
plan_component_has_been_updated |
Django Signal (post_save) |
marketplace.PlanComponent |
Log plan component updates. |
plan_has_been_created_or_updated |
Django Signal (post_save) |
marketplace.Plan |
Log plan creation, update, and archiving events. |
process_invitations_and_orders_when_project_start_date_is_unset |
Django Signal (post_save) |
structure.Project |
Process pending invitations and orders when a project's start date is unset. |
process_invoice_item |
Django Signal (post_save) |
invoices.InvoiceItem |
Process invoice item changes and update related price estimates. |
project_credit_changed_handler |
Django Signal (post_save) |
invoices.ProjectCredit |
No description |
project_estimated_cost_policy_trigger_handler |
Django Signal (post_save) |
invoices.InvoiceItem |
Evaluate project cost policies when invoice items are updated. |
resource_has_been_changed |
Django Signal (post_save) |
marketplace.Resource |
Log resource changes. |
resource_options_have_been_changed |
Django Signal (post_save) |
marketplace.Resource |
Handle script execution when marketplace resource options are changed. |
resource_state_has_been_changed |
Django Signal (post_save) |
marketplace.Resource |
Handle resource state changes. |
run_reset_actions_upon_cost_policy_deletion |
Django Signal (pre_delete) |
policy.ProjectEstimatedCostPolicy |
Execute reset actions when a cost policy is deleted. |
send_comment_added_notification |
Django Signal (post_save) |
support.Comment |
No description |
send_done_order_to_message_queue |
Django Signal (post_save) |
marketplace.Order |
Send completed marketplace order to message queue for site agent processing. |
send_issue_updated_notification |
Django Signal (post_save) |
support.Issue |
No description |
send_offering_user_username_message |
Django Signal (post_save) |
marketplace.OfferingUser |
No description |
send_pending_order_to_message_queue |
Django Signal (post_save) |
marketplace.Order |
Send pending marketplace order to message queue for site agent processing. |
send_project_service_account_deletion_info |
Django Signal (post_save) |
marketplace.ProjectServiceAccount |
No description |
send_project_service_account_info |
Django Signal (post_save) |
marketplace.ProjectServiceAccount |
No description |
send_resource_update_message_to_queue |
Django Signal (post_save) |
marketplace.Resource |
No description |
send_role_granted_message_to_queue |
Custom Signal (role_granted) |
— |
No description |
send_role_revoked_message_to_queue |
Custom Signal (role_revoked) |
— |
No description |
set_mtu_when_network_has_been_created |
Django Signal (post_save) |
openstack.Network |
No description |
set_project_name_on_invoice_item_creation |
Django Signal (post_save) |
invoices.InvoiceItem |
No description |
set_tax_percent_on_invoice_creation |
Django Signal (pre_save) |
invoices.Invoice |
No description |
switch_resource_plan_period_when_plan_is_updated |
Django Signal (post_save) |
marketplace.Resource |
Switch the resource plan period when a resource's plan is updated. |
sync_component_user_usage_when_allocation_user_usage_is_submitted |
Django Signal (post_save) |
waldur_slurm.AllocationUserUsage |
No description |
sync_limits |
Django Signal (post_save) |
marketplace.Resource |
Synchronize resource limits. |
sync_permission_with_remote |
Custom Signal (role_granted) |
— |
No description |
sync_permission_with_remote |
Custom Signal (role_revoked) |
— |
No description |
sync_permission_with_remote |
Custom Signal (role_updated) |
— |
No description |
sync_remote_project_when_request_is_approved |
Django Signal (post_save) |
marketplace_remote.ProjectUpdateRequest |
No description |
sync_resource_limit_when_order |
Django Signal (post_save) |
marketplace.Order |
Synchronize resource limits when an order is created. |
synchronize_directly_connected_ips |
Django Signal (post_save) |
openstack.Instance |
No description |
synchronize_floating_ips |
Django Signal (post_save) |
openstack.FloatingIP |
No description |
synchronize_floating_ips_on_delete |
Django Signal (post_delete) |
openstack.FloatingIP |
No description |
synchronize_instance_after_pull |
Django Signal (post_save) |
openstack.Instance |
No description |
synchronize_instance_hypervisor_hostname |
Django Signal (post_save) |
openstack.Instance |
No description |
synchronize_instance_name |
Django Signal (post_save) |
openstack.Instance |
No description |
synchronize_limits_when_storage_mode_is_switched |
Django Signal (post_save) |
marketplace.Offering |
No description |
synchronize_nic |
Django Signal (post_save) |
waldur_azure.NetworkInterface |
No description |
synchronize_ports |
Django Signal (post_save) |
openstack.Port |
No description |
synchronize_ports_on_delete |
Django Signal (post_delete) |
openstack.Port |
No description |
synchronize_public_ip |
Django Signal (post_save) |
waldur_azure.PublicIP |
No description |
synchronize_resource_metadata_on_delete |
Django Signal (post_delete) |
waldur_azure.VirtualMachine |
Synchronize resource metadata on delete. |
synchronize_resource_metadata_on_delete |
Django Signal (post_delete) |
waldur_azure.SQLServer |
Synchronize resource metadata on delete. |
synchronize_resource_metadata_on_delete |
Django Signal (post_delete) |
waldur_azure.SQLDatabase |
Synchronize resource metadata on delete. |
synchronize_resource_metadata_on_delete |
Django Signal (post_delete) |
openstack.Instance |
Synchronize resource metadata on delete. |
synchronize_resource_metadata_on_delete |
Django Signal (post_delete) |
openstack.Volume |
Synchronize resource metadata on delete. |
synchronize_resource_metadata_on_delete |
Django Signal (post_delete) |
openstack.Tenant |
Synchronize resource metadata on delete. |
synchronize_resource_metadata_on_delete |
Django Signal (post_delete) |
waldur_rancher.Cluster |
Synchronize resource metadata on delete. |
synchronize_resource_metadata_on_delete |
Django Signal (post_delete) |
waldur_slurm.Allocation |
Synchronize resource metadata on delete. |
synchronize_resource_metadata_on_delete |
Django Signal (post_delete) |
waldur_vmware.VirtualMachine |
Synchronize resource metadata on delete. |
synchronize_resource_metadata_on_save |
Django Signal (post_save) |
waldur_azure.VirtualMachine |
Synchronize resource metadata on save. |
synchronize_resource_metadata_on_save |
Django Signal (post_save) |
waldur_azure.SQLServer |
Synchronize resource metadata on save. |
synchronize_resource_metadata_on_save |
Django Signal (post_save) |
waldur_azure.SQLDatabase |
Synchronize resource metadata on save. |
synchronize_resource_metadata_on_save |
Django Signal (post_save) |
openstack.Instance |
Synchronize resource metadata on save. |
synchronize_resource_metadata_on_save |
Django Signal (post_save) |
openstack.Volume |
Synchronize resource metadata on save. |
synchronize_resource_metadata_on_save |
Django Signal (post_save) |
openstack.Tenant |
Synchronize resource metadata on save. |
synchronize_resource_metadata_on_save |
Django Signal (post_save) |
waldur_rancher.Cluster |
Synchronize resource metadata on save. |
synchronize_resource_metadata_on_save |
Django Signal (post_save) |
waldur_slurm.Allocation |
Synchronize resource metadata on save. |
synchronize_resource_metadata_on_save |
Django Signal (post_save) |
waldur_vmware.VirtualMachine |
Synchronize resource metadata on save. |
synchronize_router_backend_metadata |
Django Signal (post_save) |
openstack.Router |
No description |
synchronize_tenant_name |
Django Signal (post_save) |
openstack.Tenant |
No description |
synchronize_volume_metadata_on_pull |
Custom Signal (resource_pulled) |
openstack.Volume |
No description |
synchronize_volume_metadata_on_save |
Django Signal (post_save) |
openstack.Volume |
No description |
tenant_does_not_exist_in_backend |
Custom Signal (tenant_does_not_exist_in_backend) |
openstack.Tenant |
No description |
terminate_resource |
Django Signal (pre_delete) |
waldur_azure.VirtualMachine |
Terminate a resource. |
terminate_resource |
Django Signal (pre_delete) |
waldur_azure.SQLServer |
Terminate a resource. |
terminate_resource |
Django Signal (pre_delete) |
waldur_azure.SQLDatabase |
Terminate a resource. |
terminate_resource |
Django Signal (pre_delete) |
openstack.Instance |
Terminate a resource. |
terminate_resource |
Django Signal (pre_delete) |
openstack.Volume |
Terminate a resource. |
terminate_resource |
Django Signal (pre_delete) |
openstack.Tenant |
Terminate a resource. |
terminate_resource |
Django Signal (pre_delete) |
waldur_rancher.Cluster |
Terminate a resource. |
terminate_resource |
Django Signal (pre_delete) |
waldur_slurm.Allocation |
Terminate a resource. |
terminate_resource |
Django Signal (pre_delete) |
waldur_vmware.VirtualMachine |
Terminate a resource. |
trigger_order_callback |
Django Signal (post_save) |
marketplace.Order |
Trigger HTTP callback when marketplace order state changes. |
update_argocd_secret_when_resource_options_changed |
Django Signal (post_save) |
marketplace.Resource |
No description |
update_cache_when_invoice_item_is_deleted |
Django Signal (post_delete) |
invoices.InvoiceItem |
No description |
update_cache_when_invoice_item_is_updated |
Django Signal (post_save) |
invoices.InvoiceItem |
No description |
update_category_offerings_count |
Custom Signal (recalculate_quotas) |
— |
Update the count of offerings for each category. |
update_category_quota_when_offering_is_created |
Django Signal (post_save) |
marketplace.Offering |
Update category quota when an offering is created or its state changes. |
update_category_quota_when_offering_is_deleted |
Django Signal (post_delete) |
marketplace.Offering |
Update category quota when an offering is deleted. |
update_component_quota |
Django Signal (post_save) |
waldur_slurm.Allocation |
No description |
update_customer_of_offering_if_project_has_been_moved |
Custom Signal (project_moved) |
structure.Project |
Update the customer of an offering if the project has been moved. |
update_daily_quotas |
Django Signal (post_save) |
quotas.QuotaUsage |
No description |
update_estimate_when_invoice_is_created |
Django Signal (post_save) |
invoices.Invoice |
Update price estimates when new invoice is created for customer. |
update_floating_ip_external_addresses |
Django Signal (post_save) |
openstack.FloatingIP |
No description |
update_google_calendar_name_if_offering_name_has_been_changed |
Django Signal (post_save) |
marketplace.Offering |
No description |
update_instances_ip_external_addresses |
Django Signal (post_save) |
marketplace.Offering |
No description |
update_invoice_item_on_project_name_update |
Django Signal (post_save) |
structure.Project |
No description |
update_invoice_when_usage_is_reported |
Django Signal (post_save) |
marketplace.ComponentUsage |
Handle usage-based billing when component usage is reported. |
update_maintenance_announcement_on_offering_change |
Django Signal (post_save) |
marketplace.MaintenanceAnnouncementOffering |
Update AdminAnnouncement when affected offerings change. |
update_maintenance_announcement_on_offering_change |
Django Signal (post_delete) |
marketplace.MaintenanceAnnouncementOffering |
Update AdminAnnouncement when affected offerings change. |
update_marketplace_resource_limits_when_vm_is_updated |
Custom Signal (vm_updated) |
— |
No description |
update_offering_user_username_after_freeipa_profile_update |
Django Signal (post_save) |
waldur_freeipa.Profile |
Update offering user usernames after FreeIPA profile update. |
update_offering_user_username_after_offering_settings_change |
Django Signal (post_save) |
marketplace.Offering |
Update offering user usernames after offering settings change. |
update_offering_user_username_after_user_change |
Django Signal (post_save) |
core.User |
Set new username for offering users after site_username in user details has been changed. |
update_openstack_tenant_usages |
Django Signal (post_save) |
quotas.QuotaUsage |
No description |
update_order_if_issue_was_complete |
Django Signal (post_save) |
support.Issue |
No description |
update_remote_resource_options |
Django Signal (post_save) |
marketplace.Resource |
No description |
update_resource_when_order_is_rejected_or_erred |
Django Signal (post_save) |
marketplace.Order |
Update resource state when an order is rejected or erred. |
Application: waldur_openstack
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
add_instance_fields |
Custom Signal (pre_serializer_fields) |
OpenStackFloatingIPSerializer |
Add instance-related fields to the serializer. |
delete_state_service_properties |
Django Signal (post_delete) |
openstack.Tenant |
Delete state service properties. |
log_action |
Django Signal (post_save) |
openstack.Instance |
Log any resource action. |
log_action |
Django Signal (post_save) |
openstack.Volume |
Log any resource action. |
log_action |
Django Signal (post_save) |
openstack.Snapshot |
Log any resource action. |
log_network_cleaned |
Django Signal (post_delete) |
openstack.Network |
Log network cleanup. |
log_security_group_cleaned |
Django Signal (post_delete) |
openstack.SecurityGroup |
Log security group cleanup. |
log_security_group_rule_cleaned |
Django Signal (post_delete) |
openstack.SecurityGroupRule |
Log security group rule cleanup. |
log_server_group_cleaned |
Django Signal (post_delete) |
openstack.ServerGroup |
Log server group cleanup. |
log_subnet_cleaned |
Django Signal (post_delete) |
openstack.SubNet |
Log subnet cleanup. |
log_tenant_quota_update |
Django Signal (post_save) |
quotas.QuotaLimit |
Log tenant quota updates. |
remove_ssh_key_from_all_tenants_on_it_deletion |
Django Signal (pre_delete) |
core.SshPublicKey |
Delete key from all tenants that are accessible for user on key deletion. |
remove_ssh_key_from_tenants |
Custom Signal (role_revoked) |
— |
Delete user ssh keys from tenants that he does not have access now. |
Application: waldur_openstack_replication
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
handle_migration_post_save |
Django Signal (post_save) |
waldur_openstack_replication.Migration |
Handle migration post-save events. |
Application: waldur_rancher
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
add_group_to_rancher_scope |
Django Signal (post_save) |
waldur_rancher.KeycloakGroup |
Add a Keycloak group to Rancher scope. |
add_rancher_cluster_to_openstack_instance |
Custom Signal (pre_serializer_fields) |
OpenStackInstanceSerializer |
Add Rancher cluster information to OpenStack instance serializer. |
delete_catalog_if_scope_has_been_deleted |
Django Signal (post_delete) |
waldur_rancher.Project |
Delete a catalog if its scope has been deleted. |
delete_catalog_if_scope_has_been_deleted |
Django Signal (post_delete) |
waldur_rancher.Cluster |
Delete a catalog if its scope has been deleted. |
delete_catalog_if_scope_has_been_deleted |
Django Signal (post_delete) |
structure.ServiceSettings |
Delete a catalog if its scope has been deleted. |
delete_cluster_if_all_related_nodes_have_been_deleted |
Django Signal (post_delete) |
waldur_rancher.Node |
Delete a Rancher cluster if all its related nodes have been deleted. |
delete_keycloak_group_from_backend |
Django Signal (post_delete) |
waldur_rancher.KeycloakGroup |
Delete a Keycloak group from the backend. |
delete_keycloak_user_group_membership_from_backend |
Django Signal (post_delete) |
waldur_rancher.KeycloakUserGroupMembership |
Delete a Keycloak user group membership from the backend. |
delete_node_if_related_instance_has_been_deleted |
Django Signal (post_delete) |
openstack.Instance |
Delete a Rancher node if its related OpenStack instance has been deleted. |
remove_group_from_rancher_scope |
Django Signal (post_delete) |
waldur_rancher.KeycloakGroup |
Remove a Keycloak group from Rancher scope. |
set_error_state_for_cluster_if_related_node_deleting_is_failed |
Django Signal (post_save) |
waldur_rancher.Node |
Set error state for a Rancher cluster if a related node deletion fails. |
set_error_state_for_node_if_related_instance_deleting_is_failed |
Django Signal (post_save) |
openstack.Instance |
Set error state for a Rancher node if its related OpenStack instance deletion fails. |
Application: waldur_slurm
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
process_role_granted |
Custom Signal (role_granted) |
— |
Process role granted events for FreeIPA synchronization. |
process_role_revoked |
Custom Signal (role_revoked) |
— |
Process role revoked events for FreeIPA synchronization. |
process_user_creation |
Django Signal (post_save) |
waldur_freeipa.Profile |
Process user creation for FreeIPA profiles. |
process_user_deletion |
Django Signal (pre_delete) |
waldur_freeipa.Profile |
Process user deletion for FreeIPA profiles. |
update_quotas_on_allocation_usage_update |
Django Signal (post_save) |
waldur_slurm.Allocation |
Update quotas on allocation usage update. |
Application: waldur_vmware
| Handler Name | Signal Type | Sender | Description |
|---|---|---|---|
update_vm_total_disk_when_disk_is_created_or_updated |
Django Signal (post_save) |
waldur_vmware.Disk |
Update VM total disk size when a disk is created or updated. |
update_vm_total_disk_when_disk_is_deleted |
Django Signal (post_delete) |
waldur_vmware.Disk |
Update VM total disk size when a disk is deleted. |
Summary
Total unique handlers found: 633
- waldur_auth_saml2: 1 handlers
- waldur_autoprovisioning: 1 handlers
- waldur_core: 333 handlers
- waldur_freeipa: 12 handlers
- waldur_lexis: 1 handlers
- waldur_mastermind: 252 handlers
- waldur_openstack: 13 handlers
- waldur_openstack_replication: 1 handlers
- waldur_rancher: 12 handlers
- waldur_slurm: 5 handlers
- waldur_vmware: 2 handlers
HomePort requirements
Overview
Homeport is a React-based application for interacting with Waldur Mastermind via browsers. It is intended for end-users as well as administrative roles.
Mobile-friendliness
All Homeport screens should be usable with mobile resolution.
Localization
All labels should be wrapped by translation tags to allow easy translations.
For details see instructions for developers.
Accessibility and WCAG compliance
Homeport is being used by human end-users and hence is developed according to the WCAG guidelines.
In particular, the following is followed:
- Static and dynamic linters for assuring that generated user interface conforms to technical requirements of WCAG (anchors, required attributes, etc).
- Usage of WCAG compliant colors in UI theme, provisioning of dark and light modes.
- Navigation is designed to be in compliance with WCAG 2.0 requirements.
- Manual testing for WCAG violations.
Internationalization
Per-request internationalization is enabled by default for English and Estonian languages.
Client requests will respect the Accept-Language.
Here are the guidelines for specifying translation strings:
- Build a proper sentence: start with a capital letter, end with a period.
Right: _('Deletion was scheduled.')
Wrong: _('deletion was scheduled')
- Use named-string interpolation instead of positional interpolation if message has several parameters.
Right: _('Operation was successfully scheduled for %(count)d instances: %(names)s.')
Wrong: _('Operation was successfully scheduled for %s instances: %s.')
- help_text, verbose_name, exception message and response message should be marked, but don't mark message template for event or alert logger.
Installation Guide
Installation via Dev Containers
If you use VS Code or GitHub Codespaces, you can quickly set up a development environment using Dev Containers. This method provides a consistent, pre-configured environment with all necessary dependencies.
Prerequisites for Dev Containers are:
- VS Code with the Dev Containers extension installed
- Docker Desktop (for local development)
- Git
After cloning repository, when prompted "Reopen in Container", click on it. Alternatively, you can press Ctrl+Shift+P, type "Dev Containers: Reopen in Container" and press Enter.
VS Code will build the dev container and set up the environment automatically. This process includes:
- Installing all system dependencies
- Setting up Python with the correct version
- Installing VS Code extensions
- Installing uv and project dependencies
- Installing PostgreSQL
- Configuring pre-commit hooks
Once the container is built and running, you'll have a fully configured development environment ready to use.
Installation from source
Prerequisites
- Linux OS. If you use Windows, you should install Linux either via Virtualbox or Windows Subsystem for Linux.
gitvirtualenvCcompiler and development libraries needed to build dependencies
Package installation by OS
-
Debian or Ubuntu:
sudo apt install git python3-pip python3-venv python3-dev gcc libffi-dev libsasl2-dev libssl-dev libpq-dev libjpeg8-dev zlib1g-dev xmlsec1 libldap2-dev liblzma-dev libxslt1-dev libxml2-dev libbz2-dev libreadline-dev libsqlite3-dev -
OS X:
brew install openssl; export CFLAGS="-I$(brew --prefix openssl)/include $CFLAGS"; export LDFLAGS="-L$(brew --prefix openssl)/lib $LDFLAGS"
Installation steps
Install uv
1 | |
Install pyenv
1 2 3 | |
Get the code
1 2 | |
Install Waldur in development mode
1 2 3 | |
NB: If you use a machine with Apple M1 CPU, run this before:
1 2 3 4 | |
Create and edit settings file
1 2 | |
Database setup
Initialize PostgreSQL database:
1 2 3 | |
Add a password waldur for this user:
1 2 3 | |
Final Setup Steps
Run migrations:
1 | |
Collect static files:
1 | |
Start Waldur:
1 | |
Additional configuration
For detailed configuration instructions, visit https://docs.waldur.com/latest/admin-guide/mastermind-configuration/general/
Maintenance Announcement Management
Overview
The MaintenanceAnnouncement system provides a comprehensive solution for managing and communicating maintenance activities across Waldur services. Service providers can create, schedule, execute, and track maintenance announcements through a complete REST API interface. The system automatically integrates with the AdminAnnouncement system to provide user-facing notifications when maintenance is scheduled.
Core Concepts
MaintenanceAnnouncement Model
Maintenance announcements represent planned or emergency maintenance activities that may affect service availability. Each announcement includes:
- Basic Information: Name, message, maintenance type
- External Integration: Optional reference URL to external maintenance trackers
- Scheduling: Planned start/end times, actual start/end times
- State Management: FSM-controlled lifecycle states
- Service Provider: Associated service provider responsible for the maintenance
- Impact Tracking: Affected offerings with specific impact levels
- AdminAnnouncement Integration: Automatic creation of user-facing notifications when scheduled
State Lifecycle
MaintenanceAnnouncement follows a finite state machine (FSM) with the following states:
1 2 3 | |
State Descriptions:
- DRAFT: Initial state when maintenance is created but not yet published
- SCHEDULED: Published maintenance announcement visible to customers
- IN_PROGRESS: Maintenance is actively being performed
- COMPLETED: Maintenance has finished successfully
- CANCELLED: Maintenance was cancelled before completion
REST API Operations
Standard CRUD Operations
List Maintenance Announcements
1 | |
Create Maintenance Announcement
1 2 3 4 5 6 7 8 9 10 11 12 | |
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Retrieve Maintenance Announcement
1 | |
Update Maintenance Announcement
1 2 3 4 5 6 7 | |
Delete Maintenance Announcement
1 | |
State Management Actions
All state management actions use POST method and follow the same pattern:
Schedule Maintenance
Publishes a draft maintenance announcement, making it visible to customers and automatically creates an associated AdminAnnouncement for user notifications.
1 | |
Requirements:
- Current state must be
DRAFT - User must be staff or service provider owner
Result:
- State transition:
DRAFT → SCHEDULED - AdminAnnouncement creation: Automatically creates a user-facing notification
- Content generation: Uses maintenance type prefix + message
- Priority mapping: Sets appropriate priority based on maintenance type
- Timing: Active from
scheduled_start - notify_before_minutestoscheduled_end + 1 hour
Unschedule Maintenance
Unpublishes a scheduled maintenance announcement, returning it to draft state and removes the associated AdminAnnouncement.
1 | |
Requirements:
- Current state must be
SCHEDULED - User must be staff or service provider owner
Result:
- State transition:
SCHEDULED → DRAFT - AdminAnnouncement cleanup: Automatically deletes the associated user notification
Start Maintenance
Marks maintenance as actively in progress.
1 | |
Requirements:
- Current state must be
SCHEDULED - User must be staff or service provider owner
- Automatically sets
actual_starttimestamp
Result: SCHEDULED → IN_PROGRESS
Complete Maintenance
Marks maintenance as successfully completed.
1 | |
Requirements:
- Current state must be
IN_PROGRESS - User must be staff or service provider owner
- Automatically sets
actual_endtimestamp
Result: IN_PROGRESS → COMPLETED
Cancel Maintenance
Cancels maintenance before completion and removes any associated AdminAnnouncement.
1 | |
Requirements:
- Current state must be
DRAFTorSCHEDULED - User must be staff or service provider owner
Result:
- State transition:
DRAFT|SCHEDULED → CANCELLED - AdminAnnouncement cleanup: Automatically deletes the associated user notification (if scheduled)
Response Format
Success Response (200 OK):
1 2 3 | |
State Validation Error (409 Conflict):
1 2 3 | |
Permission Error (404 Not Found):
1 2 3 | |
Authentication Error (401 Unauthorized):
1 2 3 | |
Maintenance Types
The system supports different types of maintenance activities:
| Value | Type | Description |
|---|---|---|
| 1 | Scheduled | Planned maintenance during scheduled windows |
| 2 | Emergency | Unplanned maintenance for critical issues |
| 3 | Security | Security-related updates and patches |
| 4 | Upgrade | System upgrades and feature deployments |
| 5 | Patch | Minor patches and bug fixes |
AdminAnnouncement Integration
Automatic User Notifications
When a MaintenanceAnnouncement transitions from DRAFT to SCHEDULED state, the system automatically creates an associated AdminAnnouncement to notify users. This integration provides:
Content Generation
The AdminAnnouncement content is automatically generated with:
- Type-specific prefix: Each maintenance type gets a descriptive emoji prefix
- 🔧 Scheduled Maintenance
- 🚨 Emergency Maintenance
- 🔒 Security Maintenance
- ⬆️ System Upgrade
- 🩹 Patch Deployment
- Original message: The maintenance message is used as-is
- Combined format:
[Type Prefix]: [Original Message]
Example:
1 2 | |
Priority Mapping
AdminAnnouncement priority is automatically set based on maintenance type:
- Emergency maintenance →
DANGERpriority (red alerts) - Security maintenance →
WARNINGpriority (yellow alerts) - All other types →
INFORMATIONpriority (blue alerts)
Timing Configuration
AdminAnnouncements are scheduled using the MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES setting:
- Active from:
scheduled_start - notify_before_minutes - Active to:
scheduled_end + 1 hour(buffer for completion)
Default notify_before_minutes is 60 minutes.
Lifecycle Management
The AdminAnnouncement automatically syncs with MaintenanceAnnouncement changes:
- Content updates: When maintenance message or type changes
- Cleanup: When maintenance is unscheduled or cancelled
- Deletion handling: Uses SET_NULL to handle manual AdminAnnouncement deletions
Enhanced AdminAnnouncement API
When a MaintenanceAnnouncement is scheduled, the associated AdminAnnouncement exposes additional maintenance-related fields through the API:
Additional Serializer Fields
1 | |
Response includes maintenance fields:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
Field Descriptions:
- maintenance_uuid: UUID of the associated MaintenanceAnnouncement
- maintenance_name: Human-readable name of the maintenance
- maintenance_type: Type of maintenance (upgrade, emergency, etc.)
- maintenance_state: Current FSM state of the maintenance
- maintenance_scheduled_start/end: Planned maintenance window
- maintenance_service_provider: Name of the responsible service provider
- maintenance_affected_offerings: Array of affected offerings with impact details
API Integration Notes
- Conditional fields: Maintenance fields are only present when AdminAnnouncement has an associated MaintenanceAnnouncement
- Real-time updates: Fields automatically update when maintenance details change
- OpenAPI documentation: All fields are properly documented with type hints for schema generation
- Null safety: Fields return
nullor empty arrays when no maintenance is associated
Configuration
Settings
MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES
Controls how long before the scheduled maintenance start time that AdminAnnouncements become active.
Default: 60 (minutes)
Usage:
1 2 3 4 | |
Effect:
- AdminAnnouncement
active_from=maintenance.scheduled_start - notify_before_minutes - Users see the notification from this time until maintenance completion + 1 hour buffer
External Integration
External Reference URL
The external_reference_url field provides integration with external maintenance tracking systems. This optional field allows you to:
- Link to external tickets: Connect maintenance announcements to tickets in systems like ServiceNow, JIRA, or custom trackers
- Provide additional context: Reference external documentation, status pages, or monitoring dashboards
- Enable workflow integration: Allow teams to track maintenance across multiple systems
Usage Examples:
https://servicedesk.company.com/ticket/MAINT-12345https://status.example.com/incidents/2024-01-15-database-upgradehttps://monitoring.company.com/dashboard/maintenance/db-upgrade-2024
API Field Details:
- Type: URL field (validates URL format)
- Required: No (blank=True)
- Use Cases: External ticket references, status page links, monitoring dashboards
Impact Levels
Each affected offering can specify its expected impact level:
| Value | Level | Description |
|---|---|---|
| 1 | No Impact | Service remains fully operational |
| 2 | Degraded Performance | Service available but with reduced performance |
| 3 | Partial Outage | Some features unavailable |
| 4 | Full Outage | Service completely unavailable |
Managing Affected Offerings
Maintenance announcements can specify which offerings will be affected through a separate endpoint. The affected_offerings field in the MaintenanceAnnouncement response is read-only and populated from associated MaintenanceAnnouncementOffering records.
Affected Offerings Workflow
- Create the maintenance announcement (as shown above)
- Add affected offerings using the separate endpoint
- The affected_offerings field will automatically reflect the associations
Affected Offerings API
List Affected Offerings
1 | |
Create Affected Offering
1 2 3 4 5 6 7 8 9 | |
Response:
1 2 3 4 5 6 7 8 9 10 | |
Retrieve Affected Offering
1 | |
Update Affected Offering
1 2 3 4 5 6 7 | |
Delete Affected Offering
1 | |
Viewing Affected Offerings
Once affected offerings are added, they appear in the MaintenanceAnnouncement response:
1 | |
Response includes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Permission System
Authorization Model
MaintenanceAnnouncement uses Waldur's standard permission system:
- Service Provider Path:
service_provider__customer - Automatic Filtering:
GenericRoleFilterhandles visibility - Role-Based Access: Permissions tied to service provider ownership
User Permissions
Staff Users:
- Full access to all maintenance announcements
- Can perform all state transitions
- Can create/update/delete any announcement
Service Provider Owners:
- Full access to their service provider's maintenance announcements
- Can perform all state transitions on their announcements
- Can create/update/delete their announcements
Other Users:
- No access to maintenance announcements (404 Not Found)
- Cannot view or modify any maintenance data
Key Points
Affected Offerings Management
- Separate Endpoint: Affected offerings are managed via
/api/maintenance-announcement-offerings/ - Read-Only Field: The
affected_offeringsfield in MaintenanceAnnouncement is read-only - Two-Step Process: Create maintenance announcement first, then add affected offerings
- Automatic Population: The
affected_offeringsfield automatically reflects associated records - Individual Management: Each affected offering can be updated or deleted independently
Important Notes
- You cannot include
affected_offeringsdirectly in the MaintenanceAnnouncement POST/PATCH requests - Affected offerings inherit the same permission model as the parent maintenance announcement
- Impact levels and descriptions are specific to each offering-maintenance relationship
- Deleting a maintenance announcement will cascade delete all associated affected offerings
AdminAnnouncement Integration Notes
- Automatic lifecycle: AdminAnnouncements are automatically created/updated/deleted based on maintenance state
- Manual deletion handling: If an AdminAnnouncement is manually deleted, the maintenance relationship is gracefully cleared (SET_NULL)
- Content synchronization: AdminAnnouncement content automatically updates when maintenance message or type changes
- Enhanced API: AdminAnnouncement API dynamically includes maintenance fields when associated with maintenance
- No manual management needed: The integration is fully automated - no manual AdminAnnouncement creation required
Mixin classes documentation
This document lists all mixin classes found in the Waldur codebase.
| Mixin Name | Module | Short Description |
|---|---|---|
BaseChecklistMixin |
waldur_core.checklist.mixins |
Base mixin providing common checklist functionality |
ReviewerChecklistMixin |
waldur_core.checklist.mixins |
Mixin for ViewSets that provide checklist review functionality to reviewers |
UserChecklistMixin |
waldur_core.checklist.mixins |
Mixin for ViewSets that provide checklist functionality to end users |
CopyButtonMixin |
waldur_core.core.admin |
Mixin to add copy-to-clipboard functionality to form fields in Django admin |
ExcludedFieldsAdminMixin |
waldur_core.core.admin |
This mixin allows to toggle display of fields in Django model admin according... |
ExtraActionsMixin |
waldur_core.core.admin |
Allows to add extra actions to admin list page |
ExtraActionsObjectMixin |
waldur_core.core.admin |
Allows to add extra actions to admin object edit page |
HideAdminOriginalMixin |
waldur_core.core.admin |
Encapsulate all admin options and functionality for a given model |
NativeNameAdminMixin |
waldur_core.core.admin |
This mixin allows to toggle display of fields in Django model admin according... |
ReadOnlyAdminMixin |
waldur_core.core.admin |
Disables all editing capabilities |
DeleteExecutorMixin |
waldur_core.core.executors |
Delete object on success or if force flag is enabled |
ErrorExecutorMixin |
waldur_core.core.executors |
Set object as erred on fail |
SuccessExecutorMixin |
waldur_core.core.executors |
Set object as OK on success, cleanup action and its details |
GenericKeyMixin |
waldur_core.core.managers |
Filtering by generic key field Support filtering by: - generic key directly... |
CreateExecutorMixin |
waldur_core.core.mixins |
Mixin to execute create operations using background executors |
DeleteExecutorMixin |
waldur_core.core.mixins |
Mixin to execute delete operations using background executors |
EagerLoadMixin |
waldur_core.core.mixins |
Reduce number of requests to DB |
ExecutorMixin |
waldur_core.core.mixins |
Execute create/update/delete operation with executor |
GetValueMixin |
waldur_core.core.mixins |
Mixin to provide helper method for getting values from attrs or instance |
ProjectNameTemplateMixin |
waldur_core.core.mixins |
Mixin for models that need to generate project names from templates |
ReviewMixin |
waldur_core.core.mixins |
An abstract base class model that provides self-updating created and ``mo... |
ReviewStateMixin |
waldur_core.core.mixins |
Make subclasses preserve the alters_data attribute on overridden methods |
ScopeMixin |
waldur_core.core.mixins |
Make subclasses preserve the alters_data attribute on overridden methods |
UpdateExecutorMixin |
waldur_core.core.mixins |
Mixin to execute update operations using background executors |
ActionMixin |
waldur_core.core.models |
Mixin for action tracking with state management |
BackendMixin |
waldur_core.core.models |
Mixin to add standard backend_id field |
BackendModelMixin |
waldur_core.core.models |
Mixin for models connected to backend objects |
DescendantMixin |
waldur_core.core.models |
Mixin to provide child-parent relationships |
DescribableMixin |
waldur_core.core.models |
Mixin to add a standardized "description" field |
ErrorMessageMixin |
waldur_core.core.models |
Mixin to add standardized error handling fields |
LastSyncMixin |
waldur_core.core.models |
Mixin to track last synchronization time |
NameMixin |
waldur_core.core.models |
Mixin to add a standardized "name" field with validation |
RuntimeStateMixin |
waldur_core.core.models |
Mixin to provide runtime state tracking |
SlugMixin |
waldur_core.core.models |
Mixin to automatically generate a name-based slug |
StateMixin |
waldur_core.core.models |
Mixin implementing finite state machine (FSM) functionality |
UiDescribableMixin |
waldur_core.core.models |
Mixin to add a standardized "description" and "icon url" fields |
UserDetailsMatchMixin |
waldur_core.core.models |
Make subclasses preserve the alters_data attribute on overridden methods |
UserDetailsMixin |
waldur_core.core.models |
This mixin is shared by User and Invitation model |
UuidMixin |
waldur_core.core.models |
Mixin to identify models by UUID |
LookupMixin |
waldur_core.core.nested_routers |
Deprecated |
NestedMixin |
waldur_core.core.nested_routers |
Mixin for creating nested routers that handle hierarchical URL structures |
AugmentedSerializerMixin |
waldur_core.core.serializers |
This mixin provides several extensions to stock Serializer class: 1 |
RestrictedSerializerMixin |
waldur_core.core.serializers |
This mixin allows to specify list of fields to be rendered by serializer |
SlugSerializerMixin |
waldur_core.core.serializers |
Ensures that slug is editable only by staff |
TranslatedModelSerializerMixin |
waldur_core.core.serializers |
A ModelSerializer is just a regular Serializer, except that: * A set of ... |
ExtensionTaskMixin |
waldur_core.core.tasks |
This mixin allows to skip task scheduling if extension is disabled |
ActionMethodMixin |
waldur_core.core.views |
Implements helper methods for viewset when use separate nested endpoints for ... |
CheckExtensionMixin |
waldur_core.core.views |
Raise exception if extension is disabled |
ConstanceCheckExtensionMixin |
waldur_core.core.views |
Raise exception if extension is disabled |
CreateReversionMixin |
waldur_core.core.views |
Mixin to automatically create revision tracking for create operations |
UpdateReversionMixin |
waldur_core.core.views |
Mixin to automatically create revision tracking for update operations |
LoggableMixin |
waldur_core.logging.mixins |
Mixin to serialize model in logs |
EventTypesMixin |
waldur_core.logging.models |
Mixin to add a event_types and event_groups fields |
UuidMixin |
waldur_core.logging.models |
Make subclasses preserve the alters_data attribute on overridden methods |
ImageModelMixin |
waldur_core.media.mixins |
Make subclasses preserve the alters_data attribute on overridden methods |
PermissionMixin |
waldur_core.permissions.mixins |
Base permission management mixin for customer and project |
UserRoleMixin |
waldur_core.permissions.views |
Mixin to provide user role management functionality for viewsets |
ExtendableQuotaModelMixin |
waldur_core.quotas.models |
Allows to add quotas to model in runtime |
QuotaModelMixin |
waldur_core.quotas.models |
Add general fields and methods to model for quotas usage |
SharedQuotaMixin |
waldur_core.quotas.models |
This mixin updates quotas for several scopes |
ChangeReadonlyMixin |
waldur_core.structure.admin |
Mixin to set different readonly fields for add and change views in Django admin |
FormRequestAdminMixin |
waldur_core.structure.admin |
This mixin allows you to get current request user in the model admin form, wh... |
ProtectedModelMixin |
waldur_core.structure.admin |
Mixin to handle protected model deletion errors gracefully in Django admin |
CoordinatesMixin |
waldur_core.structure.mixins |
Mixin to add a latitude and longitude fields |
IPCoordinatesMixin |
waldur_core.structure.mixins |
Mixin to add a latitude and longitude fields |
CustomerDetailsMixin |
waldur_core.structure.models |
Mixin containing customer detail fields |
ProjectOECDFOS2007CodeMixin |
waldur_core.structure.models |
Mixin providing OECD FOS 2007 classification codes for research projects |
ServiceAccountMixin |
waldur_core.structure.models |
Mixin for models that support service accounts |
StructureLoggableMixin |
waldur_core.structure.models |
Extends LoggableMixin with structure-specific permission filtering |
VATMixin |
waldur_core.structure.models |
Add country and VAT number fields for tax compliance and record keeping |
CountrySerializerMixin |
waldur_core.structure.serializers |
The BaseSerializer class provides a minimal class which may be used for writi... |
FieldFilteringMixin |
waldur_core.structure.serializers |
Mixin allowing to filter fields by user |
PermissionFieldFilteringMixin |
waldur_core.structure.serializers |
Mixin allowing to filter related fields |
SshPublicKeySerializerMixin |
waldur_core.structure.serializers |
A type of ModelSerializer that uses hyperlinked relationships instead of pr... |
ProjectMetadataTestMixin |
waldur_core.structure.tests.test_project_metadata |
Shared test setup and utilities for project metadata tests |
CheckExtensionMixin |
waldur_freeipa.views |
Raise exception if extension is disabled |
PeriodMixin |
waldur_mastermind.invoices.models |
Make subclasses preserve the alters_data attribute on overridden methods |
ConnectedResourceMixin |
waldur_mastermind.marketplace.admin |
Protects object from modification if there are connected resources |
ParentInlineMixin |
waldur_mastermind.marketplace.admin |
Mixin to get parent object from request in Django admin inline views |
OfferingFilterMixin |
waldur_mastermind.marketplace.filters |
Mixin to provide common offering-related filters |
CostEstimateMixin |
waldur_mastermind.marketplace.models |
Mixin for cost estimation functionality |
RequestTypeMixin |
waldur_mastermind.marketplace.models |
Mixin for request type handling |
ResourceDetailsMixin |
waldur_mastermind.marketplace.models |
Mixin combining resource details with cost estimation |
SafeAttributesMixin |
waldur_mastermind.marketplace.models |
Mixin for safe attribute handling |
ConnectedOfferingDetailsMixin |
waldur_mastermind.marketplace.views |
Mixin to provide offering details action for connected resources |
PublicViewsetMixin |
waldur_mastermind.marketplace.views |
Mixin to allow anonymous access to offerings when configured |
TenantMixin |
waldur_mastermind.marketplace_openstack.processors |
No description available |
SelectiveDNSMockMixin |
waldur_mastermind.marketplace_remote.tests.dns_utils |
Mixin class that provides selective DNS mocking for test classes |
ContainerExecutorMixin |
waldur_mastermind.marketplace_script.utils |
Mixin to execute scripts in containers for marketplace script processing |
EstimatedCostPolicyMixin |
waldur_mastermind.policy.models |
Make subclasses preserve the alters_data attribute on overridden methods |
OfferingPolicySerializerMixin |
waldur_mastermind.policy.serializers |
This mixin provides several extensions to stock Serializer class: 1 |
BackendNameMixin |
waldur_mastermind.support.models |
Make subclasses preserve the alters_data attribute on overridden methods |
FileMixin |
waldur_mastermind.support.models |
Mixin to provide file-related functionality and properties |
CheckExtensionMixin |
waldur_mastermind.support.views |
Raise exception if extension is disabled |
ActionDetailsMixin |
waldur_openstack.admin |
Encapsulate all admin options and functionality for a given model |
ImageMetadataMixin |
waldur_openstack.admin |
Encapsulate all admin options and functionality for a given model |
MetadataMixin |
waldur_openstack.admin |
Encapsulate all admin options and functionality for a given model |
TenantQuotaMixin |
waldur_openstack.models |
It allows to update both service settings and shared tenant quotas |
LimitedPerTypeThrottleMixin |
waldur_openstack.tasks |
No description available |
TenantMixin |
waldur_openstack.tests.factories |
No description available |
DataciteMixin |
waldur_pid.mixins |
A marker model for models that can be registered with PIDs and referred to in... |
RoleMixin |
waldur_rancher.models |
Make subclasses preserve the alters_data attribute on overridden methods |
SettingsMixin |
waldur_rancher.models |
Make subclasses preserve the alters_data attribute on overridden methods |
SyncDestroyMixin |
waldur_rancher.views |
No description available |
YamlMixin |
waldur_rancher.views |
No description available |
UsageMixin |
waldur_slurm.models |
Make subclasses preserve the alters_data attribute on overridden methods |
VirtualMachineMixin |
waldur_vmware.models |
Make subclasses preserve the alters_data attribute on overridden methods |
Detailed Descriptions
BaseChecklistMixin
Module: waldur_core.checklist.mixins
Description: Base mixin providing common checklist functionality.
Provides shared helper methods used by both UserChecklistMixin and ReviewerChecklistMixin. Should not be used directly - use UserChecklistMixin or ReviewerChecklistMixin instead.
ReviewerChecklistMixin
Module: waldur_core.checklist.mixins
Description: Mixin for ViewSets that provide checklist review functionality to reviewers.
Provides actions for designated reviewers to view full checklist information including sensitive review logic: - checklist_review: Get full checklist with review logic exposed - completion_review_status: Get full completion status with review triggers exposed
Security Design: This mixin exposes privileged review information and should only be used with proper reviewer permission controls.
IMPORTANT: Must override permissions with app-specific reviewer checks: - checklist_review_permissions = [permission_factory(...)] # Reviewer permissions required - completion_review_status_permissions = [permission_factory(...)] # Reviewer permissions required
Base classes: BaseChecklistMixin
UserChecklistMixin
Module: waldur_core.checklist.mixins
Description: Mixin for ViewSets that provide checklist functionality to end users.
Provides actions for users filling in checklists or viewing their answers: - checklist: Get checklist questions with existing answers (hides review logic) - completion_status: Get completion status (hides review triggers) - submit_answers: Submit answers to checklist questions
Security Design: This mixin hides all review logic information to prevent users from gaming the system by seeing which answers trigger reviews.
Default permissions are IsAdminUser but should be overridden with app-specific permissions: - checklist_permissions = [permission_factory(...)] - completion_status_permissions = [permission_factory(...)] - submit_answers_permissions = [permission_factory(...)]
Base classes: BaseChecklistMixin
CopyButtonMixin
Module: waldur_core.core.admin
Description: Mixin to add copy-to-clipboard functionality to form fields in Django admin.
ExcludedFieldsAdminMixin
Module: waldur_core.core.admin
Description: This mixin allows to toggle display of fields in Django model admin according to custom logic. It's expected that inherited class has implemented excluded_fields property.
Base classes: ModelAdmin
ExtraActionsMixin
Module: waldur_core.core.admin
Description: Allows to add extra actions to admin list page.
ExtraActionsObjectMixin
Module: waldur_core.core.admin
Description: Allows to add extra actions to admin object edit page.
HideAdminOriginalMixin
Module: waldur_core.core.admin
Description: Encapsulate all admin options and functionality for a given model.
Base classes: ModelAdmin
NativeNameAdminMixin
Module: waldur_core.core.admin
Description: This mixin allows to toggle display of fields in Django model admin according to custom logic. It's expected that inherited class has implemented excluded_fields property.
Base classes: ExcludedFieldsAdminMixin
ReadOnlyAdminMixin
Module: waldur_core.core.admin
Description: Disables all editing capabilities. Please ensure that readonly_fields is specified in derived class.
DeleteExecutorMixin
Module: waldur_core.core.executors
Description: Delete object on success or if force flag is enabled
ErrorExecutorMixin
Module: waldur_core.core.executors
Description: Set object as erred on fail.
SuccessExecutorMixin
Module: waldur_core.core.executors
Description: Set object as OK on success, cleanup action and its details.
GenericKeyMixin
Module: waldur_core.core.managers
Description: Filtering by generic key field
Support filtering by:
- generic key directly:
CreateExecutorMixin
Module: waldur_core.core.mixins
Description: Mixin to execute create operations using background executors.
Base classes: AsyncExecutor
DeleteExecutorMixin
Module: waldur_core.core.mixins
Description: Mixin to execute delete operations using background executors.
Base classes: AsyncExecutor
EagerLoadMixin
Module: waldur_core.core.mixins
Description: Reduce number of requests to DB.
Serializer should implement static method "eager_load", that selects objects that are necessary for serialization.
ExecutorMixin
Module: waldur_core.core.mixins
Description: Execute create/update/delete operation with executor
Base classes: CreateExecutorMixin, UpdateExecutorMixin, DeleteExecutorMixin
GetValueMixin
Module: waldur_core.core.mixins
Description: Mixin to provide helper method for getting values from attrs or instance.
ProjectNameTemplateMixin
Module: waldur_core.core.mixins
Description: Mixin for models that need to generate project names from templates.
Base classes: Model
ReviewMixin
Module: waldur_core.core.mixins
Description:
An abstract base class model that provides self-updating
created and modified fields.
Base classes: ReviewStateMixin, TimeStampedModel
ReviewStateMixin
Module: waldur_core.core.mixins
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
ScopeMixin
Module: waldur_core.core.mixins
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
UpdateExecutorMixin
Module: waldur_core.core.mixins
Description: Mixin to execute update operations using background executors.
Base classes: AsyncExecutor
ActionMixin
Module: waldur_core.core.models
Description: Mixin for action tracking with state management.
Extends StateMixin with action tracking fields including action name, action details (JSON), and task ID for background task tracking. Used for models that need to track ongoing operations.
Base classes: StateMixin
BackendMixin
Module: waldur_core.core.models
Description: Mixin to add standard backend_id field.
Provides a backend_id CharField for storing identifiers from external backend systems. Used for mapping local objects to their corresponding backend representations.
Base classes: Model
BackendModelMixin
Module: waldur_core.core.models
Description: Mixin for models connected to backend objects.
Represents models that are synchronized with external backend systems. These models cannot be created or updated via admin interface because backend queries are not supported in the admin.
DescendantMixin
Module: waldur_core.core.models
Description: Mixin to provide child-parent relationships.
Each related model can provide list of its parents through the get_parents() method. Used for hierarchical data structures where objects have parent-child relationships.
DescribableMixin
Module: waldur_core.core.models
Description: Mixin to add a standardized "description" field.
Base classes: Model
ErrorMessageMixin
Module: waldur_core.core.models
Description: Mixin to add standardized error handling fields.
Provides error_message and error_traceback TextField for storing error information and debugging details when operations fail.
Base classes: Model
LastSyncMixin
Module: waldur_core.core.models
Description: Mixin to track last synchronization time.
Provides a last_sync DateTimeField that defaults to the current time and is not editable through forms. Used for tracking when data was last synchronized with external systems.
Base classes: Model
NameMixin
Module: waldur_core.core.models
Description: Mixin to add a standardized "name" field with validation.
Provides a CharField with maximum length of 150 characters and validates the name using the validate_name validator.
Base classes: Model
RuntimeStateMixin
Module: waldur_core.core.models
Description: Mixin to provide runtime state tracking.
Adds a runtime_state field with predefined ONLINE/OFFLINE states. Used to track the current operational status of resources.
Base classes: Model
SlugMixin
Module: waldur_core.core.models
Description: Mixin to automatically generate a name-based slug.
Generates unique slugs based on the source field (default: 'name') during save operations. Uses generate_slug() to ensure uniqueness by appending numeric suffixes when needed.
Base classes: Model
StateMixin
Module: waldur_core.core.models
Description: Mixin implementing finite state machine (FSM) functionality.
Provides state management with transitions between creation, updating, deletion, OK, and error states. Includes error handling capabilities and concurrent transition support.
Base classes: ErrorMessageMixin, ConcurrentTransitionMixin
UiDescribableMixin
Module: waldur_core.core.models
Description: Mixin to add a standardized "description" and "icon url" fields.
Extends DescribableMixin with an icon_url field for UI display purposes. The icon_url field accepts URLs up to 500 characters.
Base classes: DescribableMixin
UserDetailsMatchMixin
Module: waldur_core.core.models
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
UserDetailsMixin
Module: waldur_core.core.models
Description: This mixin is shared by User and Invitation model. All fields are optional. User is populated with these details when invitation is approved. Note that civil_number and email fields are not included in this mixin because they have different constraints in User and Invitation model.
Base classes: Model
UuidMixin
Module: waldur_core.core.models
Description: Mixin to identify models by UUID.
Provides a UUID field for unique model identification. The UUID is automatically generated and used as a primary identifier.
Base classes: Model
LookupMixin
Module: waldur_core.core.nested_routers
Description: Deprecated.
No method override is needed since Django Rest Framework 2.4.
NestedMixin
Module: waldur_core.core.nested_routers
Description: Mixin for creating nested routers that handle hierarchical URL structures.
AugmentedSerializerMixin
Module: waldur_core.core.serializers
Description: This mixin provides several extensions to stock Serializer class:
-
Add extra fields to serializer from dependent applications in a way that doesn't introduce circular dependencies.
To achieve this, dependent application should subscribe to pre_serializer_fields signal and inject additional fields.
Example of signal handler implementation:
from waldur_core.structure.serializers import CustomerSerializer
def add_customer_name(sender, fields, **kwargs): fields['customer_name'] = ReadOnlyField(source='customer.name')
pre_serializer_fields.connect( handlers.add_customer_name, sender=CustomerSerializer )
-
Declaratively add attributes fields of related entities for ModelSerializers.
To achieve list related fields whose attributes you want to include.
Example: class ProjectSerializer(AugmentedSerializerMixin, serializers.HyperlinkedModelSerializer): class Meta: model = models.Project fields = ( 'url', 'uuid', 'name', 'customer', 'customer_uuid', 'customer_name', ) related_paths = ('customer',)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
# This is equivalent to listing the fields explicitly, # by default "uuid" and "name" fields of related object are added: class ProjectSerializer(AugmentedSerializerMixin, serializers.HyperlinkedModelSerializer): customer_uuid = serializers.UUIDField(read_only=True, source='customer.uuid') customer_name = serializers.ReadOnlyField(source='customer.name') class Meta: model = models.Project fields = ( 'url', 'uuid', 'name', 'customer', 'customer_uuid', 'customer_name', ) lookup_field = 'uuid' # The fields of related object can be customized: class ProjectSerializer(AugmentedSerializerMixin, serializers.HyperlinkedModelSerializer): class Meta: model = models.Project fields = ( 'url', 'uuid', 'name', 'customer', 'customer_uuid', 'customer_name', 'customer_native_name', ) related_paths = { 'customer': ('uuid', 'name', 'native_name') } -
Protect some fields from change.
Example: class ProjectSerializer(AugmentedSerializerMixin, serializers.HyperlinkedModelSerializer): class Meta: model = models.Project fields = ('url', 'uuid', 'name', 'customer') protected_fields = ('customer',)
-
This mixin overrides "get_extra_kwargs" method and puts "view_name" to extra_kwargs or uses URL name specified in a model of serialized object.
RestrictedSerializerMixin
Module: waldur_core.core.serializers
Description: This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.
It is disabled for nested serializers (where parent is another serializer) but remains active for list views (where parent is a ListSerializer).
SlugSerializerMixin
Module: waldur_core.core.serializers
Description: Ensures that slug is editable only by staff
Base classes: Serializer
TranslatedModelSerializerMixin
Module: waldur_core.core.serializers
Description:
A ModelSerializer is just a regular Serializer, except that:
- A set of default fields are automatically populated.
- A set of default validators are automatically populated.
- Default
.create()and.update()implementations are provided.
The process of automatically determining a set of serializer fields based on the model fields is reasonably complex, but you almost certainly don't need to dig into the implementation.
If the ModelSerializer class doesn't generate the set of fields that
you need you should either declare the extra/differing fields explicitly on
the serializer class, or simply use a Serializer class.
Base classes: ModelSerializer
ExtensionTaskMixin
Module: waldur_core.core.tasks
Description: This mixin allows to skip task scheduling if extension is disabled. Subclasses should implement "is_extension_disabled" method which returns boolean value.
Base classes: Task
ActionMethodMixin
Module: waldur_core.core.views
Description: Implements helper methods for viewset when use separate nested endpoints for create/edit relations objects. Example:
@decorators.action(detail=True, methods=["get", "post"]) def offerings(self, request, uuid=None): return self.action_list_method("requestedoffering_set")(self, request, uuid)
offerings_serializer_class = serializers.RequestedOfferingSerializer
def offering_detail(self, request, uuid=None, obj_uuid=None): return self.action_detail_method( "requestedoffering_set", delete_validators=[], update_validators=[ core_validators.StateValidator( RequestedOfferingStates.REQUESTED ) ], )(self, request, uuid, obj_uuid)
offering_detail_serializer_class = serializers.RequestedOfferingSerializer
CheckExtensionMixin
Module: waldur_core.core.views
Description: Raise exception if extension is disabled
ConstanceCheckExtensionMixin
Module: waldur_core.core.views
Description: Raise exception if extension is disabled
CreateReversionMixin
Module: waldur_core.core.views
Description: Mixin to automatically create revision tracking for create operations.
UpdateReversionMixin
Module: waldur_core.core.views
Description: Mixin to automatically create revision tracking for update operations.
LoggableMixin
Module: waldur_core.logging.mixins
Description: Mixin to serialize model in logs. Extends django model or custom class with fields extraction method.
EventTypesMixin
Module: waldur_core.logging.models
Description: Mixin to add a event_types and event_groups fields.
Base classes: Model
UuidMixin
Module: waldur_core.logging.models
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
ImageModelMixin
Module: waldur_core.media.mixins
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
PermissionMixin
Module: waldur_core.permissions.mixins
Description:
Base permission management mixin for customer and project.
It is expected that reverse permissions relation is created for this model.
Provides method to grant, revoke and check object permissions.
UserRoleMixin
Module: waldur_core.permissions.views
Description: Mixin to provide user role management functionality for viewsets.
ExtendableQuotaModelMixin
Module: waldur_core.quotas.models
Description: Allows to add quotas to model in runtime.
Example: from waldur_core.quotas.fields import QuotaField
1 2 3 4 | |
Base classes: QuotaModelMixin
QuotaModelMixin
Module: waldur_core.quotas.models
Description: Add general fields and methods to model for quotas usage.
Model with quotas have inherit this mixin. For quotas implementation such methods and fields have to be defined: - class Quota(QuotaModelMixin) - class with quotas fields as attributes.
Example: Customer(models.Model): ... Quotas(quotas_models.QuotaModelMixin.Quotas): nc_user_count = quotas_fields.QuotaField() # define user count quota for customers
Use such methods to change objects quotas: set_quota_limit, set_quota_usage, add_quota_usage.
Base classes: Model
SharedQuotaMixin
Module: waldur_core.quotas.models
Description: This mixin updates quotas for several scopes.
ChangeReadonlyMixin
Module: waldur_core.structure.admin
Description: Mixin to set different readonly fields for add and change views in Django admin.
FormRequestAdminMixin
Module: waldur_core.structure.admin
Description: This mixin allows you to get current request user in the model admin form, which then passed to add_user method, so that user which granted role, is stored in the permission model.
ProtectedModelMixin
Module: waldur_core.structure.admin
Description: Mixin to handle protected model deletion errors gracefully in Django admin.
CoordinatesMixin
Module: waldur_core.structure.mixins
Description: Mixin to add a latitude and longitude fields
Base classes: Model
IPCoordinatesMixin
Module: waldur_core.structure.mixins
Description: Mixin to add a latitude and longitude fields
Base classes: CoordinatesMixin
CustomerDetailsMixin
Module: waldur_core.structure.models
Description: Mixin containing customer detail fields.
Provides comprehensive customer information fields including native name, contact details, agreement number, email, phone, address, banking information, and external system integration.
Base classes: NameMixin, VATMixin, CoordinatesMixin
ProjectOECDFOS2007CodeMixin
Module: waldur_core.structure.models
Description: Mixin providing OECD FOS 2007 classification codes for research projects.
Provides standardized classification codes for different scientific fields according to the OECD Fields of Science and Technology (FOS) 2007 standard. Used to categorize research projects by their scientific domain.
Base classes: Model
ServiceAccountMixin
Module: waldur_core.structure.models
Description: Mixin for models that support service accounts.
Provides functionality for managing service accounts with configurable maximum limits. Used by customers and projects to control service account creation.
Base classes: Model
StructureLoggableMixin
Module: waldur_core.structure.models
Description: Extends LoggableMixin with structure-specific permission filtering.
Provides permission filtering for logging operations based on structure-specific user permissions and visibility rules.
Base classes: LoggableMixin
VATMixin
Module: waldur_core.structure.models
Description: Add country and VAT number fields for tax compliance and record keeping. VAT validation is optional and can be done manually or through external services.
Base classes: Model
CountrySerializerMixin
Module: waldur_core.structure.serializers
Description: The BaseSerializer class provides a minimal class which may be used for writing custom serializer implementations.
Note that we strongly restrict the ordering of operations/properties that may be used on the serializer in order to enforce correct usage.
In particular, if a data= argument is passed then:
.is_valid() - Available.
.initial_data - Available.
.validated_data - Only available after calling is_valid()
.errors - Only available after calling is_valid()
.data - Only available after calling is_valid()
If a data= argument is not passed then:
.is_valid() - Not available. .initial_data - Not available. .validated_data - Not available. .errors - Not available. .data - Available.
Base classes: Serializer
FieldFilteringMixin
Module: waldur_core.structure.serializers
Description: Mixin allowing to filter fields by user.
In order to constrain the list of fields implement
get_filtered_field() method returning list of tuples
(field name, func for check access).
PermissionFieldFilteringMixin
Module: waldur_core.structure.serializers
Description: Mixin allowing to filter related fields.
In order to constrain the list of entities that can be used as a value for the field:
-
Make sure that the entity in question has corresponding Permission class defined.
-
Implement
get_filtered_field_names()method in the class that this mixin is mixed into and return the field in question from that method.
SshPublicKeySerializerMixin
Module: waldur_core.structure.serializers
Description:
A type of ModelSerializer that uses hyperlinked relationships instead
of primary key relationships. Specifically:
- A 'url' field is included instead of the 'id' field.
- Relationships to other instances are hyperlinks, instead of primary keys.
Base classes: HyperlinkedModelSerializer
ProjectMetadataTestMixin
Module: waldur_core.structure.tests.test_project_metadata
Description: Shared test setup and utilities for project metadata tests.
CheckExtensionMixin
Module: waldur_freeipa.views
Description: Raise exception if extension is disabled
Base classes: ConstanceCheckExtensionMixin
PeriodMixin
Module: waldur_mastermind.invoices.models
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
ConnectedResourceMixin
Module: waldur_mastermind.marketplace.admin
Description: Protects object from modification if there are connected resources.
ParentInlineMixin
Module: waldur_mastermind.marketplace.admin
Description: Mixin to get parent object from request in Django admin inline views.
OfferingFilterMixin
Module: waldur_mastermind.marketplace.filters
Description: Mixin to provide common offering-related filters.
Base classes: FilterSet
CostEstimateMixin
Module: waldur_mastermind.marketplace.models
Description: Mixin for cost estimation functionality.
Provides cost estimation with plan-based calculations and policy validation. Used for calculating costs based on limits and plans with policy compliance checking.
Base classes: Model
RequestTypeMixin
Module: waldur_mastermind.marketplace.models
Description: Mixin for request type handling.
Extends CostEstimateMixin with request type-specific cost calculation for different operation types (CREATE, UPDATE, etc.). Provides pricing logic based on request type and plan switching.
Base classes: CostEstimateMixin
ResourceDetailsMixin
Module: waldur_mastermind.marketplace.models
Description: Mixin combining resource details with cost estimation.
Provides comprehensive resource details including cost estimation, safe attributes, and end date management. Used for resource lifecycle management and billing calculations.
Base classes: SafeAttributesMixin, CostEstimateMixin, NameMixin, SlugMixin, DescribableMixin
SafeAttributesMixin
Module: waldur_mastermind.marketplace.models
Description: Mixin for safe attribute handling.
Provides safe attribute functionality excluding secret attributes. Used for secure attribute access that filters out sensitive information like passwords and credentials.
Base classes: Model
ConnectedOfferingDetailsMixin
Module: waldur_mastermind.marketplace.views
Description: Mixin to provide offering details action for connected resources.
PublicViewsetMixin
Module: waldur_mastermind.marketplace.views
Description: Mixin to allow anonymous access to offerings when configured.
TenantMixin
Module: waldur_mastermind.marketplace_openstack.processors
Description: No description available.
SelectiveDNSMockMixin
Module: waldur_mastermind.marketplace_remote.tests.dns_utils
Description: Mixin class that provides selective DNS mocking for test classes.
Usage: class MyTestClass(SelectiveDNSMockMixin, test.APITransactionTestCase): def setUp(self): super().setUp() # Your additional setup code here
ContainerExecutorMixin
Module: waldur_mastermind.marketplace_script.utils
Description: Mixin to execute scripts in containers for marketplace script processing.
EstimatedCostPolicyMixin
Module: waldur_mastermind.policy.models
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: PeriodMixin
OfferingPolicySerializerMixin
Module: waldur_mastermind.policy.serializers
Description: This mixin provides several extensions to stock Serializer class:
-
Add extra fields to serializer from dependent applications in a way that doesn't introduce circular dependencies.
To achieve this, dependent application should subscribe to pre_serializer_fields signal and inject additional fields.
Example of signal handler implementation:
from waldur_core.structure.serializers import CustomerSerializer
def add_customer_name(sender, fields, **kwargs): fields['customer_name'] = ReadOnlyField(source='customer.name')
pre_serializer_fields.connect( handlers.add_customer_name, sender=CustomerSerializer )
-
Declaratively add attributes fields of related entities for ModelSerializers.
To achieve list related fields whose attributes you want to include.
Example: class ProjectSerializer(AugmentedSerializerMixin, serializers.HyperlinkedModelSerializer): class Meta: model = models.Project fields = ( 'url', 'uuid', 'name', 'customer', 'customer_uuid', 'customer_name', ) related_paths = ('customer',)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
# This is equivalent to listing the fields explicitly, # by default "uuid" and "name" fields of related object are added: class ProjectSerializer(AugmentedSerializerMixin, serializers.HyperlinkedModelSerializer): customer_uuid = serializers.UUIDField(read_only=True, source='customer.uuid') customer_name = serializers.ReadOnlyField(source='customer.name') class Meta: model = models.Project fields = ( 'url', 'uuid', 'name', 'customer', 'customer_uuid', 'customer_name', ) lookup_field = 'uuid' # The fields of related object can be customized: class ProjectSerializer(AugmentedSerializerMixin, serializers.HyperlinkedModelSerializer): class Meta: model = models.Project fields = ( 'url', 'uuid', 'name', 'customer', 'customer_uuid', 'customer_name', 'customer_native_name', ) related_paths = { 'customer': ('uuid', 'name', 'native_name') } -
Protect some fields from change.
Example: class ProjectSerializer(AugmentedSerializerMixin, serializers.HyperlinkedModelSerializer): class Meta: model = models.Project fields = ('url', 'uuid', 'name', 'customer') protected_fields = ('customer',)
-
This mixin overrides "get_extra_kwargs" method and puts "view_name" to extra_kwargs or uses URL name specified in a model of serialized object.
Base classes: AugmentedSerializerMixin
BackendNameMixin
Module: waldur_mastermind.support.models
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
FileMixin
Module: waldur_mastermind.support.models
Description: Mixin to provide file-related functionality and properties.
CheckExtensionMixin
Module: waldur_mastermind.support.views
Description: Raise exception if extension is disabled
Base classes: ConstanceCheckExtensionMixin
ActionDetailsMixin
Module: waldur_openstack.admin
Description: Encapsulate all admin options and functionality for a given model.
Base classes: ModelAdmin
ImageMetadataMixin
Module: waldur_openstack.admin
Description: Encapsulate all admin options and functionality for a given model.
Base classes: ModelAdmin
MetadataMixin
Module: waldur_openstack.admin
Description: Encapsulate all admin options and functionality for a given model.
Base classes: ModelAdmin
TenantQuotaMixin
Module: waldur_openstack.models
Description: It allows to update both service settings and shared tenant quotas.
Base classes: SharedQuotaMixin
LimitedPerTypeThrottleMixin
Module: waldur_openstack.tasks
Description: No description available.
TenantMixin
Module: waldur_openstack.tests.factories
Description: No description available.
DataciteMixin
Module: waldur_pid.mixins
Description: A marker model for models that can be registered with PIDs and referred to in a Datacite PID way.
Base classes: Model
RoleMixin
Module: waldur_rancher.models
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
SettingsMixin
Module: waldur_rancher.models
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
SyncDestroyMixin
Module: waldur_rancher.views
Description: No description available.
YamlMixin
Module: waldur_rancher.views
Description: No description available.
UsageMixin
Module: waldur_slurm.models
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
VirtualMachineMixin
Module: waldur_vmware.models
Description: Make subclasses preserve the alters_data attribute on overridden methods.
Base classes: Model
Models
Structure application models
classDiagram
direction TB
class OrganizationGroup {
+int id [PK]
+string name
+string uuid
+OrganizationGroup parent [FK]
}
class Customer {
+int id [PK]
+AutoCreatedField created
+AutoLastModifiedField modified
+image image
+string name
+string slug
+string uuid
+float latitude
+float longitude
+string vat_code
+string vat_name
+string vat_address
+string country
+string native_name
+string abbreviation
+string contact_details
+string agreement_number
+int sponsor_number
+string email
+string phone_number
+string access_subnets
+string backend_id
+string registration_code
+string homepage
+string domain
+string address
+string postal
+string bank_name
+string bank_account
+int max_service_accounts
+datetime accounting_start_date
+decimal default_tax_percent
+bool blocked
+bool archived
+Checklist project_metadata_checklist [FK]
+OrganizationGroup organization_groups
}
class ProjectType {
+int id [PK]
+string description
+string name
+string uuid
}
class Project {
+int id [PK]
+AutoCreatedField created
+AutoLastModifiedField modified
+bool is_removed
+image image
+string description
+string slug
+string uuid
+string backend_id
+int max_service_accounts
+string oecd_fos_2007_code
+string name
+date start_date
+date end_date
+User end_date_requested_by [FK]
+ProjectType type [FK]
+bool is_industry
+Customer customer [FK]
}
Customer "*" -- "*" OrganizationGroup : organization_groups
OrganizationGroup "*" -- "1" OrganizationGroup : parent
Project "*" -- "1" Customer : customer
Project "*" -- "1" ProjectType : type
Project "*" -- "1" User : end_date_requested_by
Permissions application models
classDiagram
direction TB
class Role {
+int id [PK]
+string description
+string uuid
+string name
+bool is_system_role
+bool is_active
+ContentType content_type [FK]
}
class UserRole {
+int id [PK]
+AutoCreatedField created
+AutoLastModifiedField modified
+string uuid
+ContentType content_type [FK]
+int object_id
+User user [FK]
+Role role [FK]
+User created_by [FK]
+datetime expiration_time
+bool is_active
}
class RolePermission {
+int id [PK]
+Role role [FK]
+string permission
}
RolePermission "*" -- "1" Role : role
UserRole "*" -- "1" Role : role
UserRole "*" -- "1" User : created_by
UserRole "*" -- "1" User : user
Marketplace category models
classDiagram
direction TB
class CategoryGroup {
+int id [PK]
+AutoCreatedField created
+AutoLastModifiedField modified
+string uuid
+string title
+file icon
+string description
}
class Category {
+int id [PK]
+AutoCreatedField created
+AutoLastModifiedField modified
+string uuid
+string backend_id
+string title
+file icon
+string description
+bool default_vm_category
+bool default_volume_category
+bool default_tenant_category
+CategoryGroup group [FK]
}
class CategoryColumn {
+int id [PK]
+string uuid
+Category category [FK]
+int index
+string title
+string attribute
+string widget
}
class CategoryComponent {
+int id [PK]
+string description
+string uuid
+string name
+string type
+string measured_unit
+Category category [FK]
}
class CategoryComponentUsage {
+int id [PK]
+ContentType content_type [FK]
+int object_id
+CategoryComponent component [FK]
+date date
+BigIntegerField reported_usage
+BigIntegerField fixed_usage
}
Category "*" -- "1" CategoryGroup : group
CategoryColumn "*" -- "1" Category : category
CategoryComponent "*" -- "1" Category : category
CategoryComponentUsage "*" -- "1" CategoryComponent : component
Marketplace catalog models
classDiagram
direction TB
class Section {
+AutoCreatedField created
+AutoLastModifiedField modified
+string key [PK]
+string title
+Category category [FK]
+bool is_standalone
}
class Attribute {
+AutoCreatedField created
+AutoLastModifiedField modified
+string key [PK]
+string title
+Section section [FK]
+string type
+bool required
+JSONField default
}
class AttributeOption {
+int id [PK]
+Attribute attribute [FK]
+string key
+string title
}
class Offering {
+int id [PK]
+AutoCreatedField created
+AutoLastModifiedField modified
+image image
+string description
+string name
+string slug
+string uuid
+string backend_id
+ContentType content_type [FK]
+int object_id
+JSONField backend_metadata
+float latitude
+float longitude
+string datacite_doi
+int citation_count
+string error_message
+file thumbnail
+string remote_image_uuid
+string full_description
+string vendor_details
+string getting_started
+string integration_guide
+Category category [FK]
+Checklist compliance_checklist [FK]
+Customer customer [FK]
+Project project [FK]
+Offering parent [FK]
+JSONField attributes
+JSONField options
+JSONField resource_options
+JSONField plugin_options
+JSONField secret_options
+string privacy_policy_link
+string country
+string type
+FSMIntegerField state
+string paused_reason
+bool shared
+bool billable
+bool support_per_user_consumption_limitation
+string access_url
+OrganizationGroup organization_groups
}
class OfferingComponent {
+int id [PK]
+string description
+string uuid
+string backend_id
+ContentType content_type [FK]
+int object_id
+string article_code
+string name
+string type
+string measured_unit
+Offering offering [FK]
+CategoryComponent parent [FK]
+string billing_type
+string limit_period
+int limit_amount
+int unit_factor
+int max_value
+int min_value
+int max_available_limit
+bool is_boolean
+int default_limit
}
Attribute "*" -- "1" Section : section
AttributeOption "*" -- "1" Attribute : attribute
Offering "*" -- "1" Offering : parent
OfferingComponent "*" -- "1" Offering : offering
Marketplace provisioning models
classDiagram
direction TB
class Plan {
+int id [PK]
+AutoCreatedField created
+AutoLastModifiedField modified
+string description
+string name
+string uuid
+string backend_id
+ContentType content_type [FK]
+int object_id
+decimal unit_price
+string unit
+string article_code
+Offering offering [FK]
+bool archived
+int max_amount
+OrganizationGroup organization_groups
}
class PlanComponent {
+int id [PK]
+Plan plan [FK]
+OfferingComponent component [FK]
+int amount
+decimal price
+decimal future_price
}
class Resource {
+int id [PK]
+AutoCreatedField created
+AutoLastModifiedField modified
+string description
+string name
+string slug
+string uuid
+string error_message
+string error_traceback
+datetime last_sync
+string backend_id
+ContentType content_type [FK]
+int object_id
+JSONField backend_metadata
+decimal cost
+Plan plan [FK]
+JSONField limits
+Offering offering [FK]
+JSONField attributes
+date end_date
+User end_date_requested_by [FK]
+FSMIntegerField state
+Project project [FK]
+Resource parent [FK]
+JSONField report
+JSONField options
+JSONField current_usages
+string effective_id
+bool downscaled
+bool restrict_member_access
+bool paused
}
class Order {
+int id [PK]
+AutoCreatedField created
+AutoLastModifiedField modified
+string uuid
+string error_message
+string error_traceback
+string backend_id
+decimal cost
+Plan plan [FK]
+JSONField limits
+int type
+Offering offering [FK]
+JSONField attributes
+Plan old_plan [FK]
+Project project [FK]
+Resource resource [FK]
+FSMIntegerField state
+string output
+User created_by [FK]
+User consumer_reviewed_by [FK]
+datetime consumer_reviewed_at
+User provider_reviewed_by [FK]
+datetime provider_reviewed_at
+string callback_url
+string termination_comment
+datetime completed_at
}
Order "*" -- "1" Plan : old_plan
Order "*" -- "1" Plan : plan
Order "*" -- "1" Resource : resource
PlanComponent "*" -- "1" Plan : plan
Resource "*" -- "1" Plan : plan
Resource "*" -- "1" Resource : parentOffering Compliance API Documentation
Offering compliance functionality enables service providers to define and track compliance requirements for their marketplace offerings. Users of these offerings must complete compliance checklists, and service providers can monitor completion status across all their offerings.
Overview
The offering compliance system allows service providers to:
- Define compliance checklists for their offerings
- Track user compliance across all offerings
- Monitor completion rates and identify users needing attention
- Ensure regulatory and organizational compliance requirements are met
Architecture
The system consists of three main components:
- Compliance Checklists - Customizable questionnaires attached to offerings
- Offering Users - Users who have access to offerings and must complete compliance
- Service Provider Management - Dashboard and APIs for compliance monitoring
Configuration
Setting Up Offering Compliance
1. Create a Compliance Checklist
First, create a checklist with type offering_compliance:
1 2 3 4 5 6 7 8 9 | |
2. Add Questions to the Checklist
1 2 3 4 5 6 7 8 9 10 11 | |
3. Assign Checklist to Offering
Attach the compliance checklist to an offering:
1 2 3 4 5 6 7 | |
API Endpoints
Checking Offering Compliance Requirements
Before accessing compliance-specific endpoints, you can check if an offering has compliance requirements using the standard offering API.
Get Offering Details
1 | |
Response includes:
1 2 3 4 5 6 | |
Field Description:
| Field | Type | Description |
|---|---|---|
has_compliance_requirements |
Boolean | Indicates whether this offering requires users to complete compliance checklists |
Usage:
true- This offering requires compliance. Users must complete checklists before using the service.false- This offering has no compliance requirements. Users can use the service without additional checklists.
For Offering Users
These endpoints allow offering users to view and complete their compliance requirements.
Base URL Pattern
1 | |
1. Get Compliance Checklist
Retrieves the compliance checklist for an offering user, including all questions and existing answers.
1 2 | |
Permissions Required:
- The authenticated user must be the offering user
- Service provider staff with UPDATE_OFFERING_USER permission
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | |
2. Get Completion Status
Retrieves only the completion status for the offering user's compliance.
1 2 | |
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
3. Submit Compliance Answers
Submit or update answers to compliance questions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Answer Data Formats:
| Question Type | Format | Example |
|---|---|---|
text_input |
String | "Short text answer" |
text_area |
String | "Detailed compliance information" |
boolean |
Boolean | true or false |
number |
Number | 42 or 3.14 |
single_select |
Array with one UUID | ["option-uuid"] |
multi_select |
Array with multiple UUIDs | ["option-1", "option-2"] |
Response:
1 2 3 4 5 6 7 8 9 10 11 12 | |
For Service Providers
These endpoints allow service providers to monitor and manage compliance across all their offerings.
Base URL Pattern
1 | |
1. Compliance Overview
Get aggregated compliance statistics for all offerings managed by the service provider.
1 2 | |
Permissions Required:
- Customer owner or staff with LIST_SERVICE_PROVIDER_CUSTOMERS permission
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
2. List Offering Users with Compliance Status
Get detailed compliance status for individual offering users.
1 2 | |
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
offering_uuid |
UUID | Filter by specific offering |
compliance_status |
String | Filter by status: completed, pending, no_checklist |
Example Request:
1 | |
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Workflow Examples
Complete User Compliance Flow
- Check if offering requires compliance
1 | |
Check the has_compliance_requirements field in the response.
- User receives offering access
-
When an offering user is created for an offering with compliance requirements, a compliance checklist completion is automatically created
-
User views compliance requirements (only if
has_compliance_requirementsistrue)
1 | |
- User submits compliance answers
1 | |
- Service provider monitors compliance
1 | |
Service Provider Monitoring Flow
- View overall compliance statistics
1 | |
- Identify non-compliant users
1 | |
- Follow up with specific users
Use the user details from the response to send reminders or take action
Lifecycle Management
Automatic Checklist Creation
When an offering user is created:
- System checks if the offering has a compliance checklist
- If present, creates a ChecklistCompletion object automatically
- Links it to the offering user via generic foreign key
Automatic Cleanup
When an offering user is deleted:
- Associated ChecklistCompletion is automatically deleted
- All related answers are cascade deleted
- No orphaned data remains
Error Handling
Common Error Responses
400 Bad Request - No Checklist Configured
1 2 3 | |
This occurs when trying to access compliance endpoints for an offering without a configured checklist.
403 Forbidden - Insufficient Permissions
1 2 3 | |
404 Not Found - Resource Not Found
1 2 3 | |
This can occur when:
- The offering user doesn't exist
- The service provider doesn't exist
- The user doesn't have access to the resource
Validation Errors
When submitting invalid answers:
1 2 3 4 5 6 7 8 9 | |
Integration Patterns
Frontend Integration
When displaying offerings in your application, use the has_compliance_requirements field to show appropriate UI elements:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Order Flow Integration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Service Provider Dashboard
Use the compliance overview endpoints to build monitoring dashboards:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Best Practices
For Service Providers
- Define Clear Questions
- Use descriptive question text
- Mark truly required fields as required
-
Provide helpful guidance text where needed
-
Regular Monitoring
- Check compliance overview regularly
- Follow up with users who have pending compliance
-
Consider setting up automated reminders
-
Checklist Design
- Keep checklists concise and relevant
- Group related questions logically
- Use appropriate question types for each data point
For Developers
- Performance Optimization
- Use the
has_compliance_requirementsfield to avoid unnecessary API calls - Use the
compliance_overviewendpoint for dashboard views - Apply filters to reduce data transfer
-
Cache compliance status where appropriate
-
Error Handling
- Always check
has_compliance_requirementsbefore accessing compliance endpoints - Handle gracefully when compliance endpoints return 400 (no checklist configured)
- Handle permission errors gracefully
-
Provide clear feedback to users
-
Integration
- Check
has_compliance_requirementsin offering lists to show UI indicators - Only call compliance endpoints when
has_compliance_requirementsistrue - Consider webhooks for compliance completion events
- Integrate with notification systems for reminders
- Build dashboards using the overview endpoints
Migration Guide
Adding Compliance to Existing Offerings
- Create the compliance checklist
- Update the offering with the checklist UUID
- Existing offering users will need to complete compliance
- New offering users will get compliance requirements automatically
Removing Compliance Requirements
- Set offering's
compliance_checklistto null - Existing completions remain for audit purposes
- No new completions will be created
Security Considerations
- Data Privacy
- Compliance data is only visible to authorized users
- Service providers can only see data for their own offerings
-
Users can only see and edit their own compliance data
-
Audit Trail
- All answer submissions are tracked with timestamps
- User information is preserved with each answer
-
Changes are logged for compliance auditing
-
Permission Model
- Based on existing Waldur permission system
- Respects customer and project boundaries
- Service provider permissions are strictly scoped
Project Metadata API Documentation
Project metadata functionality allows organizations to collect structured information about their projects using customizable checklists. This feature is built on top of the core checklist system and provides a standardized way to gather project details, compliance information, and other metadata.
Overview
Project metadata uses the checklist system to enable organizations to:
- Define custom metadata collection forms for their projects
- Ensure consistent data collection across all projects
- Track completion status of metadata requirements
- Manage access controls for viewing and editing metadata
Configuration
Setting Up Project Metadata
- Create a Project Metadata Checklist
First, create a checklist with type PROJECT_METADATA:
1 2 3 4 5 6 7 8 9 | |
- Add Questions to the Checklist
1 2 3 4 5 6 7 8 9 10 11 | |
- Assign Checklist to Customer
Assign the checklist to a customer to enable metadata collection for all their projects:
1 2 3 4 5 6 7 | |
API Endpoints
Project metadata endpoints are available at both project and customer levels:
Project-Level Endpoints
Base URL: /api/projects/<project-uuid>/
Customer-Level Compliance Endpoints
Base URL: /api/customers/<customer-uuid>/
These endpoints provide aggregated compliance information across all projects in a customer organization. All endpoints support efficient database-level pagination to handle large numbers of projects.
Customer-Level Compliance Overview
Get an overview of project metadata compliance across all customer projects.
1 2 | |
Permissions Required:
- Customer owner
- Customer support
- Staff user
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Customer-Level Compliance Projects List
Get paginated list of projects with their completion status.
1 2 | |
Query Parameters:
page- Page number (default: 1)page_size- Number of projects per page (default: 10, max: 300)
Permissions Required:
- Customer owner
- Customer support
- Staff user
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Response Headers:
X-Result-Count- Total number of projectsLink- Pagination links (first, prev, next, last)
Customer-Level Question Answers
Get paginated list of questions with answers across all projects.
1 2 | |
Query Parameters:
page- Page number (default: 1)page_size- Number of questions per page (default: 10, max: 300)
Permissions Required:
- Customer owner
- Customer support
- Staff user
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | |
Response Headers:
X-Result-Count- Total number of questionsLink- Pagination links (first, prev, next, last)
Enhanced Fields:
Each question and its answers now include additional metadata for better usability:
question_options- Available options for select-type questions (single_select, multi_select), empty array for other typesanswer_labels- Human-readable labels for select-type answers:- For
single_select: String with the selected option label - For
multi_select: Array of strings with selected option labels - For other question types:
null min_value- Minimum allowed value for number-type questions,nullfor other question typesmax_value- Maximum allowed value for number-type questions,nullfor other question types
Customer-Level Compliance Details
Get paginated detailed compliance information for each project.
1 2 | |
Query Parameters:
page- Page number (default: 1)page_size- Number of projects per page (default: 10, max: 300)
Permissions Required:
- Customer owner
- Customer support
- Staff user
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | |
Response Headers:
X-Result-Count- Total number of projectsLink- Pagination links (first, prev, next, last)
Answer Fields Description:
Each answer in the response includes both machine-readable and human-readable data:
question_type- The type of question (text_input, text_area, boolean, number, single_select, multi_select)question_options- Available options for select-type questions, empty array for other typesmin_value- Minimum allowed value for number-type questions,nullfor other question typesmax_value- Maximum allowed value for number-type questions,nullfor other question typesanswer_data- The raw answer data (UUIDs for select questions, direct values for others)answer_labels- Human-readable labels converted from UUIDs:- For
single_select: String with the selected option label - For
multi_select: Array of strings with selected option labels - For other question types:
null
Performance Notes
All customer-level compliance endpoints use database-level pagination for optimal performance:
- Efficient Data Loading: Only retrieves data for the current page, not all records
- Bulk Operations: Uses optimized database queries with
select_related()andprefetch_related() - Memory Efficient: Handles large numbers of projects without memory issues
- Pagination Headers: Returns
X-Result-Countheader with total count andLinkheader with navigation links
Available Actions
1. Get Project Metadata Checklist
Retrieves the metadata checklist for a project, including all questions and existing answers.
1 2 | |
Permissions Required:
- Project member (admin, manager, or member)
- Customer owner
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | |
2. Get Completion Status
Retrieves only the completion status information for the project metadata.
1 2 | |
Permissions Required:
- Project member (admin, manager, or member)
- Customer owner
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
3. Submit Metadata Answers
Submit or update answers to metadata questions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Permissions Required:
- Customer owner
- Project manager
Answer Data Formats:
| Question Type | Format | Example |
|---|---|---|
text_input |
String | "Short text answer" |
text_area |
String | "Long text answer with multiple lines" |
boolean |
Boolean | true or false |
number |
Number | 42 or 3.14 |
single_select |
Array with one UUID | ["option-uuid"] |
multi_select |
Array with multiple UUIDs | ["option-uuid-1", "option-uuid-2"] |
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Error Responses
Common Error Codes
400 Bad Request
1 2 3 | |
403 Forbidden
1 2 3 | |
404 Not Found
1 2 3 | |
Validation Errors
When submitting invalid answers:
1 2 3 4 5 6 7 8 9 | |
Permission Model
The project metadata system uses a granular permission model:
View Permissions (checklist, completion_status)
- Project Admin: Can view metadata for their projects
- Project Manager: Can view metadata for their projects
- Project Member: Can view metadata for their projects
- Customer Owner: Can view metadata for all projects in their organization
Update Permissions (submit_answers)
- Customer Owner: Can update metadata for all projects in their organization
- Project Manager: Can update metadata for their projects
Administrative Permissions (checklist management)
- Staff Users: Can create and manage checklists
- Customer Owners: Can assign checklists to their organization
Lifecycle Management
Automatic Checklist Completion Creation
When a customer has a project metadata checklist configured:
- New Project Creation: ChecklistCompletion is automatically created for new projects
- Existing Projects: ChecklistCompletion is created for all existing projects when checklist is assigned
- Checklist Removal: All associated ChecklistCompletions are automatically deleted
Data Integrity
- Answers are tied to the user who submitted them
- Multiple users can provide answers to the same checklist
- Answer history is maintained with creation and modification timestamps
- Completion status is calculated in real-time based on required questions
Best Practices
For API Consumers
- Check Completion Status: Always check if metadata is required before showing forms
- Handle Missing Checklists: Gracefully handle cases where no checklist is configured
- Validate Before Submit: Validate answer formats client-side to reduce API errors
- Show Progress: Use completion_percentage to show users their progress
- Cache Appropriately: Checklist structure changes infrequently, status changes often
- Use Customer-Level Endpoints: For organizational dashboards, use customer-level compliance endpoints for efficient aggregated views
- Leverage Pagination: Take advantage of database-level pagination for large datasets with appropriate page sizes
- Use Enhanced Fields: Take advantage of enhanced question metadata for better user experience:
- Display
question_optionsto show available choices for select questions - Use
answer_labelsfor human-readable display while keepinganswer_datafor form submissions - Use
min_valueandmax_valuefor client-side validation of number inputs - All enhanced fields are optimized to avoid N+1 query issues
For Administrators
- Plan Question Structure: Design questions before creating projects
- Use Clear Descriptions: Make question descriptions self-explanatory
- Set Appropriate Requirements: Mark essential questions as required
- Test Thoroughly: Test the complete flow before deploying to users
- Monitor Adoption: Track completion rates to ensure effective use
Related Documentation
Release Orchestration
This document describes the automated release orchestration system that coordinates releases across the entire Waldur ecosystem from the waldur-docs repository.
Overview
The waldur-docs repository serves as the central orchestration hub for Waldur releases. When a semantic version tag (e.g., 7.6.8) is applied to this repository, it triggers an automated workflow that:
- Updates documentation with versioned API schemas and changelogs
- Tags all repositories across the Waldur ecosystem
- Updates version references in deployment configurations
- Releases SDKs with updated version numbers
- Generates comprehensive changelogs with cross-repository links
Release flow diagram
flowchart TD
A[Create semantic version tag<br/>on waldur-docs] --> B{GitLab CI pipeline<br/>triggered}
B --> C[Test stage]
C --> C1[Lint markdown files]
C --> C2[Test MkDocs build]
C --> C3[Test Docker Compose<br/>deployment]
C --> C4[Test Helm<br/>deployment]
C --> C5[Test changelog<br/>generation]
C1 --> D{All tests pass?}
C2 --> D
C3 --> D
C4 --> D
C5 --> D
D -->|No| E[Pipeline fails]
D -->|Yes| F[Deploy stage]
F --> F1[Build & deploy<br/>documentation]
F --> F2[Tag all repositories]
F --> F3[Release SDKs]
F --> F4[Update configurations]
F --> F5[Generate changelog]
F1 --> F1a[Deploy latest docs<br/>to GitHub Pages]
F1 --> F1b[Deploy tagged version<br/>with mike]
F2 --> F2a[waldur-mastermind]
F2 --> F2b[waldur-homeport]
F2 --> F2c[waldur-prometheus-exporter]
F3 --> F3a[Python SDK<br/>update pyproject.toml]
F3 --> F3b[JS/TS SDK<br/>update package.json]
F3 --> F3c[Go SDK<br/>git tag only]
F4 --> F4a[Helm charts<br/>update Chart.yaml & values.yaml]
F4 --> F4b[Docker Compose<br/>update .env.example]
F5 --> F5a[Parse previous version<br/>from CHANGELOG.md]
F5 --> F5b[Generate diff links<br/>for all repos]
F5 --> F5c[Add SBOM & API<br/>schema references]
F5 --> F5d[Commit updated<br/>changelog]
F1a --> G[Release complete]
F1b --> G
F2a --> G
F2b --> G
F2c --> G
F3a --> G
F3b --> G
F3c --> G
F4a --> G
F4b --> G
F5d --> G
G --> H[Post-deploy stage]
H --> H1[Deploy tagged<br/>documentation]
style A fill:#e1f5fe
style G fill:#c8e6c9
style E fill:#ffcdd2
style F fill:#fff3e0
Coordinated repositories
The release orchestration manages the following repositories:
Core components
- waldur-mastermind - Backend API and business logic
- waldur-homeport - Frontend web application
- waldur-prometheus-exporter - Metrics and monitoring
Deployment & infrastructure
- waldur-helm - Kubernetes Helm charts
- waldur-docker-compose - Docker Compose configurations
SDKs & client libraries
- py-client - Python SDK
- js-client - TypeScript/JavaScript SDK
- go-client - Go SDK
Release workflow
1. Pre-release testing
Before creating a release tag, the system validates:
1 2 3 4 5 6 7 8 9 10 | |
2. Repository tagging
The system automatically tags all core repositories with the same version:
1 2 3 4 | |
3. Configuration updates
Helm charts
Version numbers are updated in Chart.yaml and values.yaml:
1 2 3 | |
Docker Compose
Image tags are updated in .env.example:
1 2 | |
4. SDK releases
Python SDK
Updates pyproject.toml with new version:
1 | |
JavaScript/TypeScript SDK
Updates both package.json and package-lock.json:
1 2 | |
Go SDK
Simple tag-based versioning (Go modules use git tags for versions).
5. Changelog generation
The system automatically generates comprehensive changelogs that include:
Cross-repository diff links
1 2 | |
Security & compliance artifacts
1 2 3 4 | |
Documentation versioning
Version-specific documentation
The system deploys versioned documentation using mike:
1 2 3 4 5 | |
API schema management
Each release includes:
- Versioned OpenAPI schema -
waldur-openapi-schema-{version}.yaml - API diff reports - Comparing changes between versions
- SBOM files - Software Bill of Materials for security compliance
Release process
For maintainers
- Prepare the release by ensuring all component repositories are ready
- Create a semantic version tag on
waldur-docsrepository:
1 2 | |
- Monitor the pipeline - GitLab CI will automatically:
- Test deployment configurations
- Tag all repositories
- Update configuration files
- Release SDKs
- Generate changelogs
- Deploy documentation
Validation
The release is complete when: - [ ] All repositories have the new tag - [ ] Helm chart versions are updated - [ ] Docker Compose configurations reference new image tags - [ ] SDK packages are released with new versions - [ ] Documentation is deployed with the new version - [ ] Changelog is updated with comprehensive links
Emergency procedures
Rolling back a release
If a release needs to be rolled back:
- Remove the git tag from all repositories
- Revert configuration changes in helm and docker-compose repositories
- Update documentation to remove the problematic version
- Coordinate with package repositories (PyPI, npm) if SDKs were published
Partial release recovery
If only some repositories were tagged successfully:
- Identify missing tags by checking each repository
- Manually tag missing repositories using the same tag message
- Re-run failed CI jobs if configuration updates are missing
Security considerations
- SSH keys for GitHub authentication are stored as GitLab CI variables
- GitLab tokens provide access to private repositories
- SBOM generation ensures supply chain security compliance
- Automated testing validates deployments before release completion
Settings policy
Settings are used to configure behaviour of Waldur deployment. Settings can be used for configuration of both core and plugins, or dependent libraries.
Below is a policy for the settings.
Plugin settings
Plugins are defining their settings in the extension.py. However, most probably not all settings might make sense to
override in production. Responsibility for highlighting what settings could be overridden in production are on
plugin developer.
Deployment settings
Deployment specific settings (e.g. for CentOS-8) are maintained as Python files and are kept in /etc/waldur/:
override.conf.py- all settings overwritten for the deployment apart from logging settings;features.json- features setup for frontend;logging.conf.py- logging configuration for Waldur
Waldur Support Module
The Support module provides a comprehensive helpdesk and ticketing system with multi-backend integration, enabling organizations to manage support requests through JIRA, SMAX, Zammad, or a basic built-in system.
Overview
The support module acts as an abstraction layer over multiple ticketing backends, providing:
- Unified API for ticket management across different backends
- Bidirectional synchronization with external ticketing systems
- Template-based issue creation
- Customer feedback collection
- SLA tracking and reporting
- Advanced permission management
Architecture
graph TB
subgraph "Waldur Support"
API[Support API]
Models[Support Models]
Backend[Backend Interface]
end
subgraph "External Systems"
JIRA[JIRA/Service Desk]
SMAX[Micro Focus SMAX]
Zammad[Zammad]
end
subgraph "Integration"
Webhook[Webhooks]
Sync[Synchronization]
end
API --> Models
Models --> Backend
Backend --> JIRA
Backend --> SMAX
Backend --> Zammad
JIRA --> Webhook
SMAX --> Webhook
Zammad --> Webhook
Webhook --> Models
Sync --> Backend
Core Components
1. Issue Management
The Issue model is the central entity for ticket management:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
Issue Types:
INFORMATIONAL- General information requestsSERVICE_REQUEST- Service provisioning requestsCHANGE_REQUEST- Change management requestsINCIDENT- Incident reports and outages
2. Comment System
Comments provide threaded discussions on issues:
1 2 3 4 5 6 | |
Comment Features:
- Public/private visibility control
- Automatic user information formatting for backends
- Bidirectional synchronization
3. Attachment Management
File attachments for issues and templates:
1 2 3 4 5 6 7 8 | |
4. User Management
SupportUser bridges Waldur users with backend systems:
1 2 3 4 5 6 | |
5. Template System
Templates enable standardized issue creation:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
6. Status Management
IssueStatus maps backend statuses to resolution types:
1 2 3 4 5 6 7 8 | |
Status Configuration:
Status configuration is critical for proper issue resolution detection. The system uses IssueStatus entries to determine whether an issue has been successfully resolved or canceled:
- RESOLVED: Statuses that indicate successful completion (e.g., "Done", "Resolved", "Completed")
- CANCELED: Statuses that indicate cancellation or failure (e.g., "Cancelled", "Rejected", "Failed")
Management Access:
- Staff users: Full CRUD access to manage status configurations
- Support users: Read-only access to view existing statuses
- Regular users: No access
API Operations:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
7. Feedback System
Customer satisfaction tracking:
1 2 3 4 | |
Backend Integration
Supported Backends
1. JIRA/Atlassian Service Desk
Full-featured integration with:
- Service Desk project support
- Request type management
- Customer portal integration
- Webhook support for real-time updates
- Custom field mapping
2. Micro Focus SMAX
Enterprise ITSM integration:
- Request and incident management
- Change management workflows
- Service catalog integration
- REST API-based synchronization
- Webhook support for real-time updates
3. Zammad
Open-source ticketing system:
- Multi-channel support (email, web, phone)
- Customer organization management
- Tag-based categorization
- Webhook integration
4. Basic Backend
No-op implementation for:
- Development and testing
- Environments without external ticketing
- Minimal support requirements
Backend Interface
All backends implement the SupportBackend interface:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
API Endpoints
Issue Management
| Endpoint | Method | Description |
|---|---|---|
/api/support-issues/ |
GET | List issues with filtering |
/api/support-issues/ |
POST | Create new issue |
/api/support-issues/{uuid}/ |
GET | Retrieve issue details |
/api/support-issues/{uuid}/ |
PATCH | Update issue |
/api/support-issues/{uuid}/ |
DELETE | Delete issue |
/api/support-issues/{uuid}/comment/ |
POST | Add comment to issue |
/api/support-issues/{uuid}/sync/ |
POST | Sync issue with backend |
Comments
| Endpoint | Method | Description |
|---|---|---|
/api/support-comments/ |
GET | List comments |
/api/support-comments/{uuid}/ |
GET | Retrieve comment |
/api/support-comments/{uuid}/ |
PATCH | Update comment |
/api/support-comments/{uuid}/ |
DELETE | Delete comment |
Attachments
| Endpoint | Method | Description |
|---|---|---|
/api/support-attachments/ |
GET | List attachments |
/api/support-attachments/ |
POST | Upload attachment |
/api/support-attachments/{uuid}/ |
GET | Download attachment |
/api/support-attachments/{uuid}/ |
DELETE | Delete attachment |
Configuration & Management
| Endpoint | Method | Description |
|---|---|---|
/api/support-users/ |
GET | List support users |
/api/support-priorities/ |
GET | List priorities |
/api/support-templates/ |
GET/POST | Manage templates |
/api/support-feedback/ |
GET/POST | Manage feedback |
/api/support-issue-statuses/ |
GET/POST | Manage issue statuses (staff only) |
/api/support-issue-statuses/{uuid}/ |
GET/PATCH/DELETE | Issue status details (staff only) |
Webhooks
| Endpoint | Method | Description |
|---|---|---|
/api/support-jira-webhook/ |
POST | JIRA webhook receiver |
/api/support-smax-webhook/ |
POST | SMAX webhook receiver |
/api/support-zammad-webhook/ |
POST | Zammad webhook receiver |
Reports
| Endpoint | Method | Description |
|---|---|---|
/api/support-statistics/ |
GET | Dashboard statistics |
/api/support-feedback-report/ |
GET | Feedback summary |
/api/support-feedback-average-report/ |
GET | Average ratings |
Permissions
Permission Model
The support module uses Waldur's standard permission system with additional paths:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Filtering
Advanced filtering capabilities:
- Customer/project-based filtering
- Resource-based filtering (VMs, networks)
- IP address lookup for resource issues
- Full-text search across summary/description
- Status, priority, and type filtering
Configuration
Django Settings
1 2 3 4 5 6 7 8 | |
Constance Settings
Dynamic configuration via admin:
1 2 3 4 5 | |
Backend Configuration
JIRA Configuration
1 2 3 4 5 6 7 8 | |
SMAX Configuration
1 2 3 4 5 6 7 | |
Zammad Configuration
1 2 3 4 5 6 | |
Workflows
Issue Creation Flow
sequenceDiagram
participant User
participant API
participant Models
participant Backend
participant External
User->>API: POST /support-issues/
API->>Models: Create Issue
Models->>Backend: create_issue()
Backend->>External: Create ticket
External-->>Backend: Ticket ID
Backend-->>Models: Update backend_id
Models-->>API: Issue created
API-->>User: 201 Created
Synchronization Flow
sequenceDiagram
participant Scheduler
participant Backend
participant External
participant Models
Scheduler->>Backend: sync_issues()
Backend->>External: Fetch updates
External-->>Backend: Issue data
Backend->>Models: Update issues
Note over Backend,Models: Update status, comments, attachments
Backend->>Models: Process callbacks
Note over Models: Trigger marketplace callbacks if needed
Webhook Flow
sequenceDiagram
participant External
participant Webhook
participant Models
participant Callbacks
External->>Webhook: POST /support-*-webhook/
Webhook->>Webhook: Validate signature
Webhook->>Models: Update issue/comment
alt Status changed
Models->>Callbacks: Trigger callbacks
Note over Callbacks: Resource state updates
end
Webhook-->>External: 200 OK
Celery Tasks
Scheduled background tasks:
| Task | Schedule | Description |
|---|---|---|
pull-support-users |
Every 6 hours | Sync support users from backend |
pull-priorities |
Daily at 1 AM | Update priority levels |
sync_request_types |
Daily at 1 AM | Sync JIRA request types |
sync-issues |
Configurable | Full issue synchronization |
Best Practices
1. Backend Selection
- Use JIRA for enterprise environments with existing Atlassian infrastructure
- Use SMAX for ITIL-compliant service management
- Use Zammad for open-source, multi-channel support
- Use Basic for development or minimal requirements
2. Status Configuration
- Map all backend statuses: Create IssueStatus entries for every status that your backend can return
- Define clear RESOLVED vs CANCELED mappings:
- RESOLVED (type=0): Statuses indicating successful completion
- CANCELED (type=1): Statuses indicating cancellation or failure
- Use descriptive names: Match the exact status names from your backend system
- Test status transitions: Verify resolution detection works correctly before production
- Staff-only management: Only staff users can create/modify status configurations
- Regular monitoring: Review status configurations when backend workflows change
3. Performance Optimization
- Enable webhooks for real-time updates
- Configure appropriate sync intervals
- Use pagination for large issue lists
- Implement caching for frequently accessed data
4. Security
- Use secure webhook endpoints with signature validation
- Implement proper permission checks
- Sanitize user input in comments/descriptions
- Use HTTPS for all backend connections
5. Monitoring
- Monitor sync task execution
- Track webhook delivery failures
- Log backend API errors
- Set up alerts for SLA breaches
Troubleshooting
Common Issues
1. Issues Not Syncing
- Check backend connectivity
- Verify API credentials
- Review sync task logs
- Ensure webhook configuration
2. Missing Status Updates
- Verify IssueStatus configuration
- Check webhook signature validation
- Review backend field mappings
- Monitor sync intervals
3. Permission Errors
- Verify user roles and permissions
- Check customer/project associations
- Review permission paths configuration
- Validate backend user permissions
4. Attachment Upload Failures
- Check file size limits
- Verify MIME type restrictions
- Review storage permissions
- Monitor backend API limits
Integration with Marketplace
The support module integrates with the marketplace for ticket-based offerings:
- Orders create support issues automatically
- Issue status changes trigger order callbacks
- Resolution status determines order success/failure
- Comments and attachments sync bidirectionally
See Ticket-Based Offerings Documentation for detailed marketplace integration.
Extension Points
The support module provides several extension points:
- Custom Backends: Implement
SupportBackendinterface - Template Processors: Custom template variable processing
- Notification Handlers: Custom email/notification logic
- Webhook Processors: Custom webhook payload processing
- Feedback Collectors: Alternative feedback mechanisms
Appendix
Database Schema
Key database tables:
support_issue- Issue recordssupport_comment- Issue commentssupport_attachment- File attachmentssupport_supportuser- Backend user mappingsupport_priority- Priority levelssupport_issuestatus- Status configuration (with UUID support)support_template- Issue templatessupport_feedback- Customer feedback
API Filters
Available query parameters:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Error Codes
Common error responses:
| Code | Description |
|---|---|
| 400 | Invalid request data |
| 401 | Authentication required |
| 403 | Permission denied |
| 404 | Issue/resource not found |
| 409 | Conflict (duplicate, state issue) |
| 424 | Backend dependency failed |
| 500 | Internal server error |
Templates
The content of this document is autogenerated during CI job execution.
Waldur CI/CD
General Architecture
Waldur uses CI/CD approach for testing, packaging and deployment. The approach is implemented with GitLab CI system. It provides a framework for building pipelines. A pipeline consists of a sequence of stages, each of which depends on the result of a predecessor and includes smaller parts called jobs. A job is a sequence of actions executed for a specific purpose, e.g., testing an application.
The entire CI/CD pipeline consists of smaller pipelines, each of which resides in a corresponding repository and belongs to a particular part.
The CI pipelines are created for the following modules:
- Waldur Mastermind - REST API backend
- Waldur Homeport - frontend module
- Waldur Docker Compose - configuration for single-node deployment via Docker Compose
- Waldur Helm Chart - package with templates of Kubernetes manifests for workload resources
The CD pipelines were created for several Waldur deployments like Waldur development or production.
The following diagram illustrates the general picture of the pipeline.
Pipeline architecture for Waldur Components
Waldur components are the separate applications of Waldur. The two major ones are Waldur Mastermind and Waldur Homeport.
There are three main stages in the pipeline:
- Test, where the source code lint and unit testing takes place. This stage runs for each commit in a merge request and for the main branch commits;
- Build, where Docker image is being built. This stage runs for the main branch commits;
- Release, where Docker image from the last stage is being published in Docker Hub registry. This stage runs for the main branch commits.
Pipeline architecture for Waldur Deployment Templates
Waldur deployment templates are the configurations for different deployment environments. Currently, Waldur supports Docker Compose and Kubernetes. The structure of the latter one is based on Helm technology. The pipeline is shown below.
This pipeline includes two stages:
- Test, where the source code lint and configuration testing takes place. This stage runs for each commit in a merge request and the main branch commits;
- Release, where the configuration is published to GitHub. This step is implemented with GitLab mirroring.
Pipeline architecture for Waldur Deployments
In this context, deployments are repositories with values for further insertion into Waldur Deployment Templates. For example, they can be values for environmental variables used in Waldur containers. The pipeline is shown below.
There are three independent stages:
- Deploy, where Waldur release is installed or updated. This stage runs only for main branch commits. For Docker Compose environment, this stage is triggered automatically. For Kubernetes, it runs automatically only for update operations, while installation requires a manual trigger. Also, the update action runs by a schedule, e.g. at 5 AM;
- Test, where the running Waldur instance is tested. For example, it checks availability via HTTP requests sent to public Waldur endpoints;
- Undeploy, which removes the Waldur instance. This stage can be triggered only manually.
Plugins ↵
Invoices plugin
Invoice price is calculated based on its items. For each object that should be added to invoice (invoice item source) should be created a separate model.
Business logic for invoice item creation and registration should be covered in a registrator in the module registrators.py.
Invoice items creation and termination should be triggered in handlers that reacts on items sources deletion or save. RegistrationManager should be used in handlers.
JIRA plugin
Configuration
-
Define active backend.
1 2 3 4 5 6 7 8
# For Service Desk WALDUR_SUPPORT.update({ 'ACTIVE_BACKEND': 'waldur_mastermind.support.backend.atlassian:ServiceDeskBackend', }) # For JIRA WALDUR_SUPPORT.update({ 'ACTIVE_BACKEND': 'waldur_mastermind.support.backend.atlassian:JiraBackend', }) -
Setup connection. Define server URL and user details to connect JIRA or Service Desk to Waldur:
1 2 3 4 5
WALDUR_SUPPORT['CREDENTIALS'].update({ 'server': <server URL>, 'username': <Atlassian user username>, 'password': <Atlassian user password>, }) -
Project setup. Define project key.
1 2 3
WALDUR_SUPPORT['PROJECT'].update({ 'key': <project key>, }) -
Project issues setup.
4.1. Make sure that selected project supports registered types of issues:
WALDUR_SUPPORT['ISSUE']['types'].4.2. Make sure that project issues have fields that corresponds to
impact_field,reporter_field,caller_field. It is possible to override default field names:
1 2 3 4 5WALDUR_SUPPORT['ISSUE'].update({ 'impact_field': <issue impact field name in JIRA or Service desk>, 'reporter_field': <issue reporter field name in JIRA or Service desk>, 'caller_field': <issue caller field name in JIRA or Service desk>, })
Web hook installation
It's possible to track updates of JIRA issues and apply them to Waldur immediately.
An instruction of JIRA configuration can be found at https://developer.atlassian.com/jiradev/jira-apis/webhooks
Step by step guide:
-
Log in to JIRA as administrator
-
Click on a cogwheel in the upper right corner and pick 'System'.
-
Scroll down to the lower left corner and find a "WebHook" option under the Advanced tab.
-
Now click on "Create a Web Hook" You will be presented with a web hook creation view. There are only 3 mandatory fields - Name, Status and URL.
4.1 Name your hook
4.2 Select whether you want to enable it. It can be disabled at any moment from to the same menu.
4.3 Configure a URL to send a POST request to. For instance: http://waldur.example.com/api/support-jira-webhook/ It is not needed to add any additional fields to request.
*Note: In case of VirtualBox localhost usually is 10.0.2.2. So the complete URL will be next:
http://10.0.2.2:8000/api/support-jira-webhook/*4.4 Add a description.
4.5 Please make sure you've picked 'created, updated and deleted' actions under 'Events' section. No need to to check Comments events, they will be synced by the issue triggers.
4.6 Save configuration.
OpenStack Replication Plugin
Introduction
The OpenStack Replication plugin extends Waldur's capabilities by enabling cross-tenant migration and replication of OpenStack infrastructure. This plugin allows organizations to migrate complete OpenStack tenants between different OpenStack service providers or regions while preserving network configurations, security groups, and other infrastructure components.
Core Functionality
The plugin enables:
- Tenant Migration: Complete migration of OpenStack tenants between service providers
- Network Replication: Copy network topologies, subnets, and routing configurations
- Security Group Migration: Replicate security groups and their rules with proper references
- Port Synchronization: Migrate port configurations including fixed IPs and security associations
- Volume Type Mapping: Map volume types between source and destination environments
- Quota Preservation: Maintain resource limits during migration
- Selective Migration: Choose specific networks and resources to migrate
Architecture
Core Models
Migration
The central model that tracks migration operations between OpenStack tenants:
1 2 3 4 5 | |
Key Features:
- State Tracking: Uses
StateMixinfor migration progress monitoring - User Attribution: Links migrations to specific users for auditing
- Resource Linking: Connects source and destination marketplace resources
- Flexible Mappings: JSON field stores complex migration configurations
Permissions: Only users who created migrations can access them
Migration Configuration
Mapping Options
The migration system supports flexible mapping configurations:
1 2 3 4 5 6 | |
Volume Type Mapping:
- Maps source volume types to destination equivalents
- Preserves quota allocations across different storage backends
- Validates that types exist in respective environments
Subnet Mapping:
- Allows CIDR remapping for network conflicts
- Validates private subnet CIDR formats
- Automatically adjusts allocation pools for new CIDRs
Migration Process
1. Migration Creation
API Endpoint: POST /api/openstack-migrations/
Required Parameters:
src_resource: UUID of source marketplace resource (OpenStack tenant)dst_offering: UUID of destination marketplace offeringdst_plan: UUID of plan for destination resource
Optional Parameters:
name: Custom name for destination resourcedescription: Description for destination resourcemappings: Configuration object for advanced mapping options
2. Resource Replication
The creation process involves several atomic steps:
- Destination Tenant Creation: Creates new tenant with generated credentials
- Network Topology Copy: Replicates networks, subnets, and routing
- Security Group Migration: Copies groups and rules with proper references
- Quota Application: Maps and applies resource limits
- Marketplace Integration: Creates destination resource record
3. Execution Pipeline
MigrationExecutor orchestrates the migration using Celery task chains:
1 2 3 4 5 6 7 | |
Task Flow:
- State Transition: Mark migration as "creating"
- Tenant Provisioning: Execute OpenStack tenant creation workflow
- Port Replication: Copy ports if
sync_instance_portsenabled
Network Migration Details
Network and Subnet Replication
The system performs network topology migration:
Networks:
- Preserves MTU settings and descriptions
- Maintains network names for consistency
- Creates equivalent networks in destination tenant
Subnets:
- Supports CIDR remapping via subnet mappings
- Preserves DNS nameservers and host routes
- Adjusts allocation pools for remapped CIDRs
- Maintains gateway configuration
Example Network Selection:
1 2 3 4 5 6 7 8 | |
Security Group Migration
Security Groups:
- Copies all security groups with names and descriptions
- Maintains group relationships for inter-group references
- Creates equivalent groups in destination tenant
Security Rules:
- Replicates all rule configurations (protocol, ports, direction)
- Maps CIDR ranges according to subnet mappings
- Resolves remote group references after all groups are created
- Handles both ingress and egress rules
Router Configuration
Static Route Filtering:
- Only migrates routes targeting destination subnet CIDRs
- Prevents invalid route configurations in new environment
- Preserves nexthop configurations where applicable
Port Synchronization
Advanced Port Migration
When sync_instance_ports is enabled, the system performs detailed port replication:
Port Types Handled:
- Instance Ports: Ports connected to active instances (state=OK)
- VIP Ports: Free ports in DOWN state for virtual IPs (
device_owner="compute:nova")
Port Migration Process:
- Data Collection: Gather port configuration from source
- Security Group Mapping: Map security groups to destination equivalents
- Port Creation: Create port with preserved configuration
- Subnet Resolution: Update fixed IPs to use destination subnet IDs
- Backend Provisioning: Execute OpenStack port creation via backend
Port Data Structure:
1 2 3 4 5 6 7 8 9 10 11 | |
Quota and Limit Handling
Quota Preservation (serializers.py:318)
Standard Limits:
All marketplace limits are preserved:
- CPU cores, RAM, storage quotas
- Network and security group limits
- Instance and volume quotas
Volume Type Quota Mapping:
- Aggregates quotas for mapped volume types
- Handles multiple source types mapping to single destination type
- Preserves total storage allocation across type changes
Quota Application (serializers.py:376):
1 2 3 4 5 6 7 | |
Event Handling
Migration Lifecycle
Order Creation: When migration completes, marketplace orders are automatically created:
1 2 3 4 5 6 7 8 | |
Benefits:
- Proper marketplace integration for billing and tracking
- Audit trail for migration operations
- Integration with approval workflows
API Reference
Migration Management
Create Migration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
List Migrations
1 | |
Filters Available:
src_resource_uuid: Filter by source resource UUIDdst_resource_uuid: Filter by destination resource UUID
Migration Details Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Configuration Options
Network Selection
- All Networks: Default behavior migrates all networks and subnets
- Selective Networks: Use
networksarray to specify which networks to migrate - Subnet Remapping: Provide CIDR mappings to avoid IP conflicts
Port Synchronization Options
- Instance Ports: Automatically included when
sync_instance_ports=true - VIP Ports: Free ports for virtual IP configurations
- Security Group Mapping: Preserves security associations
Volume Type Handling
- One-to-One Mapping: Map each source type to destination equivalent
- Many-to-One Mapping: Aggregate multiple source types to single destination
- Quota Aggregation: Automatically sums quotas for merged types
Validation Rules
Pre-Migration Checks (serializers.py:156)
- Source Resource Validation:
- Must have limits configured
-
Must be accessible to requesting user
-
Destination Offering Validation:
- Must be available for ordering by user
-
Plan must belong to selected offering
-
Permission Validation:
- User must have tenant creation permissions in target project
-
Order must not require consumer review (auto-approved)
-
Mapping Validation:
- Volume types must exist in respective environments
- Cannot combine
sync_instance_portswith subnet mappings - Subnet CIDRs must be valid private network ranges
Error Handling
Migration Failures
- Object Not Found: Gracefully handles missing dependencies
- Backend Errors: Properly propagates OpenStack API failures
- Validation Errors: Clear error messages for configuration issues
- State Management: Failed migrations marked as ERRED with error details
Recovery Mechanisms
- Partial Success: Network migration continues even if some components fail
- Security Group Recovery: Handles missing security groups during port creation
- Route Validation: Filters invalid routes to prevent configuration errors
Integration with Marketplace
Resource Lifecycle
- Resource Creation: Destination resource created before migration starts
- Order Generation: Marketplace order created on migration completion
- Billing Integration: Proper cost tracking for migrated resources
- State Synchronization: Resource state reflects migration progress
Permissions Integration
- Uses marketplace permission system for access control
- Integrates with project-level permissions
- Respects offering availability rules
Performance Considerations
Transaction Safety
- Uses
@transaction.atomicfor data consistency - Commits migration execution after successful creation
- Prevents partial state corruption during failures
Async Execution
- Migration execution happens asynchronously via Celery
- Non-blocking API responses with immediate migration record
- Background processing for time-intensive operations
Resource Optimization
- Selective network migration reduces unnecessary copying
- Efficient quota aggregation for volume type mappings
- Optimized ancestor traversal in quota calculations
Use Cases
1. Service Provider Migration
Migrate tenants between different OpenStack clouds:
1 2 3 4 5 6 7 8 9 | |
2. Development Environment Replication
Copy production tenant to development environment:
1 2 3 4 5 6 7 8 9 10 | |
3. Disaster Recovery Setup
Replicate critical infrastructure with port synchronization:
1 2 3 4 5 6 7 8 | |
Limitations and Considerations
Current Limitations
- Instance Migration: Does not migrate actual VM instances (infrastructure only)
- Volume Data: Does not copy volume data (structure only)
- Floating IPs: External network connections not fully replicated
- Custom Metadata: Some OpenStack metadata may not be preserved
Security Considerations
- Credential Generation: New tenant gets fresh random credentials
- Network Isolation: Maintains network isolation in destination environment
- Permission Boundaries: Respects Waldur's permission system throughout
Planning Considerations
- IP Address Conflicts: Plan subnet mappings to avoid IP conflicts
- Volume Type Availability: Ensure destination volume types exist
- Quota Limits: Verify destination environment can accommodate quotas
- Network Dependencies: Consider external network connectivity requirements
Testing
The plugin includes comprehensive test coverage:
Migration Tests (tests/test_migration.py)
- Basic Migration: Validates complete tenant migration workflow
- Network Selection: Tests selective network migration
- Volume Type Mapping: Verifies quota aggregation across type mappings
- Security Group Replication: Ensures proper rule and reference handling
- Error Handling: Tests graceful failure scenarios
Port Task Tests
- Port Creation: Validates successful port replication
- Error Recovery: Tests handling of missing dependencies
- Security Group Association: Verifies proper security group mapping
Configuration
App Registration (apps.py:5)
1 2 3 4 5 6 | |
URL Configuration (urls.py:4)
1 2 3 | |
Extension Integration (extension.py:4)
1 2 3 4 | |
Best Practices
Migration Planning
- Pre-Migration Analysis: Review source tenant configuration
- Quota Verification: Ensure destination has sufficient quotas
- Network Planning: Design subnet mappings to avoid conflicts
- Volume Type Mapping: Map storage types based on performance requirements
Execution Guidelines
- Test Migrations: Perform test migrations before production
- Selective Migration: Use network selection for large tenants
- Monitor Progress: Track migration state through API
- Post-Migration Validation: Verify all components migrated correctly
Troubleshooting
- Check Logs: Review migration error messages and tracebacks
- Validate Permissions: Ensure proper access to source and destination
- Verify Dependencies: Confirm all required resources exist
- Resource Cleanup: Clean up failed migrations manually if needed
OpenStack Plugin
Introduction
The OpenStack plugin for Waldur provides comprehensive integration with OpenStack cloud infrastructure, enabling organizations to manage OpenStack resources through Waldur's unified platform. This plugin acts as a bridge between Waldur's resource management capabilities and OpenStack's Infrastructure-as-a-Service (IaaS) offerings.
Core Functionality
The plugin enables:
- Multi-tenant Resource Management: Create and manage OpenStack projects (tenants) with isolated resources
- Compute Resource Provisioning: Deploy and manage virtual machines with full lifecycle control
- Storage Management: Provision block storage volumes, create snapshots, and manage backups
- Network Configuration: Set up virtual networks, subnets, routers, and security policies
- Quota Management: Synchronize and enforce resource quotas between Waldur and OpenStack
- Cross-tenant Resource Sharing: Share networks between tenants using RBAC policies
- Automated Resource Discovery: Import existing OpenStack resources into Waldur
- Console Access: Provide direct console access to virtual machines
Supported Operations by OpenStack Service
Keystone (Identity Service)
| Operation | Description | API Endpoint |
|---|---|---|
| Tenant Creation | Create new OpenStack projects/tenants | POST /api/openstack-tenants/ |
| Tenant Deletion | Remove OpenStack projects | DELETE /api/openstack-tenants/{uuid}/ |
| Authentication | Manage tenant credentials | Handled internally |
| Quota Retrieval | Fetch tenant quotas | GET /api/openstack-tenants/{uuid}/quotas/ |
| Quota Update | Modify tenant quotas | POST /api/openstack-tenants/{uuid}/set_quotas/ |
Nova (Compute Service)
| Operation | Description | API Endpoint |
|---|---|---|
| Instances | ||
| Create Instance | Launch new virtual machines | POST /api/openstack-instances/ |
| Delete Instance | Terminate virtual machines | DELETE /api/openstack-instances/{uuid}/ |
| Start Instance | Power on virtual machines | POST /api/openstack-instances/{uuid}/start/ |
| Stop Instance | Power off virtual machines | POST /api/openstack-instances/{uuid}/stop/ |
| Restart Instance | Reboot virtual machines | POST /api/openstack-instances/{uuid}/restart/ |
| Resize Instance | Change instance flavor | POST /api/openstack-instances/{uuid}/change_flavor/ |
| Console Access | Get VNC console URL | POST /api/openstack-instances/{uuid}/console/ |
| Attach Volume | Connect storage to instance | POST /api/openstack-instances/{uuid}/attach_volume/ |
| Detach Volume | Disconnect storage from instance | POST /api/openstack-instances/{uuid}/detach_volume/ |
| Assign Floating IP | Attach public IP | POST /api/openstack-instances/{uuid}/assign_floating_ip/ |
| Flavors | ||
| List Flavors | Get available VM sizes | GET /api/openstack-flavors/ |
| Import Flavors | Sync flavors from backend | POST /api/openstack-tenants/{uuid}/pull_flavors/ |
| Images | ||
| List Images | Get available OS images | GET /api/openstack-images/ |
| Import Images | Sync images from backend | POST /api/openstack-tenants/{uuid}/pull_images/ |
| Server Groups | ||
| Create Server Group | Set up affinity policies | POST /api/openstack-server-groups/ |
| Delete Server Group | Remove affinity policies | DELETE /api/openstack-server-groups/{uuid}/ |
| Availability Zones | ||
| List AZs | Get compute availability zones | GET /api/openstack-instance-availability-zones/ |
Cinder (Block Storage Service)
| Operation | Description | API Endpoint |
|---|---|---|
| Volumes | ||
| Create Volume | Provision block storage | POST /api/openstack-volumes/ |
| Delete Volume | Remove block storage | DELETE /api/openstack-volumes/{uuid}/ |
| Extend Volume | Increase volume size | POST /api/openstack-volumes/{uuid}/extend/ |
| Attach to Instance | Connect volume to VM | POST /api/openstack-volumes/{uuid}/attach/ |
| Detach from Instance | Disconnect volume from VM | POST /api/openstack-volumes/{uuid}/detach/ |
| Create from Snapshot | Restore volume from snapshot | POST /api/openstack-volumes/{uuid}/create_from_snapshot/ |
| Snapshots | ||
| Create Snapshot | Create volume snapshot | POST /api/openstack-snapshots/ |
| Delete Snapshot | Remove snapshot | DELETE /api/openstack-snapshots/{uuid}/ |
| Restore Snapshot | Create volume from snapshot | POST /api/openstack-snapshots/{uuid}/restore/ |
| Volume Types | ||
| List Volume Types | Get storage types (SSD/HDD) | GET /api/openstack-volume-types/ |
| Import Volume Types | Sync types from backend | POST /api/openstack-tenants/{uuid}/pull_volume_types/ |
| Backups | ||
| Create Backup | Create volume backup | POST /api/openstack-backups/ |
| Delete Backup | Remove backup | DELETE /api/openstack-backups/{uuid}/ |
| Restore Backup | Restore volume from backup | POST /api/openstack-backups/{uuid}/restore/ |
Neutron (Networking Service)
| Operation | Description | API Endpoint |
|---|---|---|
| Networks | ||
| Create Network | Set up virtual network | POST /api/openstack-networks/ |
| Delete Network | Remove virtual network | DELETE /api/openstack-networks/{uuid}/ |
| Update Network | Modify network properties | PATCH /api/openstack-networks/{uuid}/ |
| Subnets | ||
| Create Subnet | Define IP address pool | POST /api/openstack-subnets/ |
| Delete Subnet | Remove subnet | DELETE /api/openstack-subnets/{uuid}/ |
| Update Subnet | Modify subnet configuration | PATCH /api/openstack-subnets/{uuid}/ |
| Routers | ||
| Create Router | Set up network router | POST /api/openstack-routers/ |
| Delete Router | Remove router | DELETE /api/openstack-routers/{uuid}/ |
| Add Interface | Connect subnet to router | POST /api/openstack-routers/{uuid}/add_interface/ |
| Remove Interface | Disconnect subnet from router | POST /api/openstack-routers/{uuid}/remove_interface/ |
| Set Gateway | Configure external gateway | POST /api/openstack-routers/{uuid}/set_gateway/ |
| Ports | ||
| Create Port | Create network interface | POST /api/openstack-ports/ |
| Delete Port | Remove network interface | DELETE /api/openstack-ports/{uuid}/ |
| Update Port | Modify port configuration | PATCH /api/openstack-ports/{uuid}/ |
| Floating IPs | ||
| Allocate Floating IP | Reserve public IP | POST /api/openstack-floating-ips/ |
| Release Floating IP | Release public IP | DELETE /api/openstack-floating-ips/{uuid}/ |
| Associate Floating IP | Attach to instance | POST /api/openstack-floating-ips/{uuid}/assign/ |
| Disassociate Floating IP | Detach from instance | POST /api/openstack-floating-ips/{uuid}/unassign/ |
| Security Groups | ||
| Create Security Group | Set up firewall rules | POST /api/openstack-sgp/ |
| Delete Security Group | Remove firewall rules | DELETE /api/openstack-sgp/{uuid}/ |
| Add Rule | Create firewall rule | POST /api/openstack-sgp/{uuid}/rules/ |
| Remove Rule | Delete firewall rule | DELETE /api/openstack-sgp/{uuid}/rules/{rule_id}/ |
| RBAC Policies | ||
| Create RBAC Policy | Share network between tenants | POST /api/openstack-network-rbac-policies/ |
| List RBAC Policies | View sharing policies | GET /api/openstack-network-rbac-policies/ |
Glance (Image Service)
| Operation | Description | API Endpoint |
|---|---|---|
| List Images | Get available images | GET /api/openstack-images/ |
| Import Images | Sync images from Glance | Handled via tenant sync |
| Image Metadata | Get image properties | Included in image list |
Network Requirements
Required Network Connectivity
The following table outlines the network ports and protocols required for Waldur to communicate with OpenStack services:
| Service | Port | Protocol | Direction | Description | Required |
|---|---|---|---|---|---|
| Keystone (Identity) | 5000 | HTTPS/HTTP | Outbound | Public API endpoint for authentication | ✅ Yes |
| Keystone (Admin) | 35357 | HTTPS/HTTP | Outbound | Admin API endpoint (deprecated in newer versions) | ⚠️ Version dependent |
| Nova (Compute) | 8774 | HTTPS/HTTP | Outbound | Compute API for instance management | ✅ Yes |
| Cinder (Block Storage) | 8776 | HTTPS/HTTP | Outbound | Volume API for storage management | ✅ Yes |
| Neutron (Networking) | 9696 | HTTPS/HTTP | Outbound | Network API for networking operations | ✅ Yes |
| Glance (Images) | 9292 | HTTPS/HTTP | Outbound | Image API for image management | ✅ Yes |
| Nova VNC Console | 6080 | HTTPS/HTTP | Outbound | VNC console proxy for instance access | ⚠️ Optional* |
| Horizon Dashboard | 80/443 | HTTPS/HTTP | Outbound | Generate links to OpenStack web UI for users | ⚠️ Optional** |
* Required only if console access feature is enabled * Only used to generate dashboard URLs for user convenience; not required for API operations*
Network Configuration Notes
- SSL/TLS Requirements:
- HTTPS is strongly recommended for all API communications
- Self-signed certificates are supported but require configuration
-
Certificate validation can be disabled for testing (not recommended for production)
-
Firewall Considerations:
- All connections are initiated from Waldur to OpenStack (outbound only)
- No inbound connections to Waldur are required from OpenStack
-
Stateful firewall rules should allow return traffic
-
API Endpoint Discovery:
- Waldur uses Keystone service catalog for endpoint discovery
- Only the Keystone endpoint needs to be explicitly configured
-
Other service endpoints are automatically discovered from the service catalog
-
Network Latency:
- API timeout: 60 seconds (configurable)
- Recommended latency: < 100ms
- Long-running operations use asynchronous task queues
Configuration
Marketplace-Based Configuration
OpenStack integration in Waldur is configured through Marketplace offerings. The plugin provides three offering types for different resource levels:
| Offering Type | Purpose | Resource Scope |
|---|---|---|
OpenStack.Tenant |
Provision and manage OpenStack projects/tenants | Provider-level |
OpenStack.Instance |
Provision virtual machines within a tenant | Tenant-level |
OpenStack.Volume |
Provision block storage volumes within a tenant | Tenant-level |
Configuring an OpenStack Provider
To set up an OpenStack provider, create a Marketplace offering of type OpenStack.Tenant with the following configuration:
Required Connection Settings
| Parameter | Location | Description | Example |
|---|---|---|---|
backend_url |
secret_options | Keystone API endpoint URL | https://keystone.example.com:5000/v3 |
username |
secret_options | Admin account username | admin |
password |
secret_options | Admin account password | secure_password |
tenant_name |
secret_options | Admin tenant/project name | admin |
domain |
secret_options | Keystone domain (v3 only) | default |
Network Configuration
| Parameter | Location | Description | Required |
|---|---|---|---|
external_network_id |
secret_options | UUID of external network for floating IPs | Yes |
default_internal_network_mtu |
plugin_options | MTU for tenant internal networks (68-9000) | No |
ipv4_external_ip_mapping |
secret_options | NAT mapping for floating IPs | No |
Optional Settings
| Parameter | Location | Description | Default |
|---|---|---|---|
access_url |
options | Horizon dashboard URL for user links | Generated from backend_url |
verify_ssl |
options | Verify SSL certificates | true |
availability_zone |
options | Default availability zone | nova |
storage_mode |
plugin_options | Storage quota mode (fixed or dynamic) |
fixed |
Storage Modes
The plugin supports two storage quota modes:
| Mode | Description | Use Case |
|---|---|---|
fixed |
Single storage quota shared by all volume types | Simple environments with uniform storage |
dynamic |
Separate quotas per volume type (SSD, HDD, etc.) | Environments with tiered storage offerings |
When using dynamic storage mode, volume types are automatically synchronized from OpenStack and created as offering components.
Resource Components
OpenStack tenant offerings include the following billable components:
| Component Type | Description | Unit | Default Limit |
|---|---|---|---|
cores |
CPU cores | Count | 20 |
ram |
Memory | MB | 51200 |
storage |
Block storage (fixed mode) | MB | 1048576 |
volume_type_* |
Per-type storage (dynamic mode) | MB | Varies |
Automated Private Offerings
When AUTOMATICALLY_CREATE_PRIVATE_OFFERING is enabled in settings, the plugin automatically creates private offerings for instances and volumes when a tenant is provisioned. This allows tenant users to order resources through the Marketplace interface.
Quota Mapping
OpenStack quotas are automatically synchronized with Waldur quotas:
| OpenStack Quota | Waldur Quota | Default Limit |
|---|---|---|
| cores | vcpu | 20 |
| ram | ram | 51200 MB |
| instances | instances | 30 |
| volumes | volumes | 50 |
| gigabytes | storage | 1024 GB |
| snapshots | snapshots | 50 |
| security_groups | security_group_count | 100 |
| security_group_rules | security_group_rule_count | 100 |
| floatingip | floating_ip_count | 50 |
| network | network_count | 10 |
| subnet | subnet_count | 10 |
| port | port_count | Unlimited |
Scheduled Tasks
The plugin runs the following automated tasks:
| Task | Schedule | Purpose |
|---|---|---|
| Pull Quotas | Every 12 hours | Synchronize quotas with OpenStack |
| Pull Resources | Every 1 hour | Update resource states |
| Pull Sub-resources | Every 2 hours | Sync networks, subnets, ports |
| Pull Properties | Every 24 hours | Update flavors, images, volume types |
| Cleanup Stuck Resources | Every 1 hour | Mark stuck resources as erred |
| Delete Expired Backups | Every 10 minutes | Remove backups past retention |
| Delete Expired Snapshots | Every 10 minutes | Remove snapshots past retention |
Security Considerations
- Credential Management:
- Service account credentials are stored in database
secret_optionsfield - Per-tenant credentials are auto-generated using random passwords
- Tenant credentials visibility can be controlled via
TENANT_CREDENTIALS_VISIBLEsetting -
SSH keys are automatically distributed to tenants based on user permissions
-
Network Security:
- Security groups provide instance-level firewalling
- Default deny-all policy for new security groups
- RBAC policies control cross-tenant network resource sharing
-
External IP mapping supports NAT scenarios
-
Audit Logging:
- All operations are logged with user attribution
- Resource state changes tracked in event log
- Failed operations logged with error details
- Quota changes trigger audit events
Troubleshooting
Common Issues
- Connection Timeouts:
- Verify network connectivity to Keystone endpoint
- Check firewall rules for required ports
-
Validate SSL certificates if using HTTPS
-
Authentication Failures:
- Verify service account credentials
- Check domain configuration for Keystone v3
-
Ensure service account has admin privileges
-
Quota Synchronization Issues:
- Check OpenStack policy files for quota permissions
- Verify nova, cinder, and neutron quota drivers
-
Review background task logs
-
Resource State Mismatches:
- Trigger manual pull operation
- Check OpenStack service status
- Review executor task logs
Marketplace Integration
The OpenStack plugin integrates with Waldur Marketplace through the marketplace_openstack module, providing:
- Simplified instance and volume ordering
- Component-based pricing (CPU, RAM, Storage)
- Automated provisioning workflows
- Resource metadata management
- Usage tracking for billing
API Reference
For detailed API documentation, refer to the Waldur API schema at /api/schema/ with the OpenStack plugin enabled.
Waldur plugins
Plugin as extension
Waldur extensions are developed as auto-configurable plugins. One plugin can contain several extensions which is a pure Django application by its own. In order to be recognized and automatically connected to Waldur some additional configuration required.
Extensions' URLs will be registered automatically only if
settings.WALDUR_CORE['EXTENSIONS_AUTOREGISTER'] is True, which is
default.
Create a class inherited from
waldur_core.core.WaldurExtension. Implement methods which
reflect your app functionality. At least django_app()
should be implemented.
Add an entry point of name waldur_extensions to pyproject.toml:
1 2[project.entry-points.waldur_extensions] waldur_demo = "waldur_demo.extension:DemoExtension"
Plugin documentation
-
Keep plugin's documentation within plugin's code repository.
-
The documentation page should start with plugin's title and description.
-
Keep plugin's documentation page structure similar to the Waldur's main documentation page:
Guide - should contain at least installation steps. API - should include description of API extension, if any.
Ticket-Based Offerings
Ticket-based offerings integrate Waldur marketplace with external ticketing systems (JIRA, SMAX, Zammad) to manage service provisioning through support tickets.
Overview
When offerings are configured with type = "Marketplace.Support", orders are processed through external ticketing systems rather than direct API provisioning. This enables:
- Manual service provisioning workflows
- Integration with existing ITSM processes
- Human approval and intervention
- Complex provisioning that requires multiple steps
Architecture
graph LR
Order[Marketplace Order] --> Issue[Support Issue]
Issue --> Backend[Ticketing Backend]
Backend --> Status[Status Change]
Status --> Callback[Resource Callback]
Callback --> Resource[Resource State]
Order Processing Flow
1. Order Creation
When a customer creates an order for a ticket-based offering:
- A support issue is created in the configured backend (JIRA/SMAX/Zammad)
- The order is linked to the issue via
issue.resource - The issue contains order details in its description
2. Status Synchronization
The system monitors issue status changes through:
- Backend synchronization (
sync_issues()) - Webhooks (JIRA, SMAX, Zammad - if configured)
- Periodic polling
3. Callback Triggering
When an issue status changes, the system determines the appropriate callback based on:
- Order Type (CREATE, UPDATE, TERMINATE)
- Resolution Status (resolved, canceled)
The callback mapping is defined in marketplace_support/handlers.py:
1 2 3 4 5 6 7 8 | |
Issue Resolution Detection
The system determines if an issue is resolved or canceled through the IssueStatus model:
IssueStatus Configuration
Each status name from the ticketing system maps to one of two types:
IssueStatus.Types.RESOLVED(0) - Successfully completedIssueStatus.Types.CANCELED(1) - Failed or canceled
Model Structure:
1 2 3 4 | |
Example Configuration:
1 2 3 4 | |
Access Control:
- Staff users: Full CRUD access via API and admin interface
- Support users: Read-only access (can view existing statuses)
- Regular users: No access
Resolution Logic
- When an issue's status changes (e.g., from backend sync)
- The
issue.resolvedproperty is evaluated: - Looks up the status name in
IssueStatustable - Returns
Trueif type isRESOLVED - Returns
Falseif type isCANCELED -
Returns
Nonefor other statuses -
Based on
(order.type, issue.resolved)combination, the appropriate callback is triggered
Resource Deletion Failed Scenario
The resource_deletion_failed callback is triggered when:
- Issue Status Changes: The support ticket's status is updated
- Order Type is TERMINATE: The order represents a resource deletion request
- Status Maps to CANCELED: The new status is configured as
IssueStatus.Types.CANCELED - Callback Execution:
callbacks.resource_deletion_failed(order.resource)is called
This typically happens when:
- Support staff reject a deletion request
- Technical issues prevent resource removal
- Business rules block the deletion
- The request is canceled before completion
Configuration
Backend Setup
Configure the ticketing backend in settings:
1 2 3 4 5 | |
Status Mapping
IssueStatus objects can be configured through the API or admin interface to map backend statuses correctly.
API Management (Staff Only)
Staff users can manage IssueStatus configurations through the REST API:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
Response Format:
1 2 3 4 5 6 7 | |
Programmatic Setup
For automated deployment, use data migrations or management commands:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Best Practices
- Status Configuration: Ensure all possible backend statuses are mapped in IssueStatus
- Use the
/api/support-issue-statuses/API for programmatic management - Staff users should regularly review and update status mappings
-
Document your backend's status workflow and map all statuses accordingly
-
Monitoring: Regularly sync issues to detect status changes
- Error Handling: Implement proper error handling in callbacks
- Logging: Monitor handler execution through logs for debugging
- Testing: Test status transitions with different order types
- API Management: Use the REST API for consistent status configuration across environments
Troubleshooting
Callbacks Not Firing
- Check if IssueStatus entries exist for the backend's status values
- Verify the offering type is set to
"Marketplace.Support" - Ensure issue synchronization is running
- Check logs for handler execution
Wrong Callback Triggered
- Review IssueStatus type configuration
- Verify the order type (CREATE/UPDATE/TERMINATE)
- Check the issue resolution logic in logs
Missing Status Mappings
If you see critical log messages about missing statuses:
1 | |
Resolution Options:
- API Management (Recommended): Use the REST API to add missing statuses:
1 2 3 4 5 6 7 | |
-
Admin Interface: Add the required IssueStatus entries through Django admin
-
Identify Missing Statuses: Check your backend system for all possible status values and ensure each has a corresponding IssueStatus entry
Common Missing Statuses by Backend:
- JIRA: "To Do", "In Progress", "Done", "Cancelled"
- SMAX: "Open", "In Progress", "Resolved", "Rejected"
- Zammad: "new", "open", "pending reminder", "pending close", "closed"
Use GET /api/support-issue-statuses/ to view currently configured statuses and compare against your backend's status list.
Valimo authentication plugin
Valimo endpoint allows to get Waldur authentication token using mobile PKI from Valimo. Please note, that only authentication is supported - no auto-registration is currently available.
-
To initiate a login process, please issue POST request against
/api/auth-valimo/endpoint providing phone number as an input. -
On that request Waldur will create a result object (
AuthResult) and request authentication from the Valimo PKI service. The result object contains all the metadata about the request, including fieldmessage- text that is sent to the user via SMS. This text is typically shown to the user for validation purposes. -
The client is expected to poll for the authentication process by issuing POST requests against
/api/auth-valimo/result/with UUID in the payload of a request. Please see details in the API documentation. -
After a successful login, endpoint
/api/auth-valimo/result/will contain authentication token.
Openstack ↵
OpenStack backups
Backups allow storing backups of instances outside of an OpenStack deployment and restoring it on other deployment.
On backup creation Waldur creates cinder backups for each volume of the instance, stores instance metadata and exports and saves metadata records of cinder backups.
On backup restoration Waldur creates cinder backups in a new tenant, based on saved metadata records. After that it creates new volumes and restores cinder backups into them. Finally, Waldur creates new instance based on restored volumes and backup metadata.
REST API
To create new backup, issue POST request with instance, backup name
and description to /api/openstack-backups/ endpoint. backup
has fields state and runtime_state that indicate backup creation
progress.
It is possible to update backup name and description with POST
request against /api/openstack-backups/<uuid>/ endpoint.
To restore backup - issue POST request with backup, new tenant and
new instance flavor against /api/openstack-backups/<uuid>/restore/
endpoint. Make sure that flavor is big enough for instance. You can
check backup metadata to get stored instance minimum ram, cores and
storage. On successful start of the restoration, endpoint will return
URL of an instance that should will be created from backup, field
state of this instance indicates restoration process progress.
For more detailed endpoints description - please check endpoints documentation.
Resources import
Waldur is able to import existing OpenStack tenants, instances and volumes. This allows you take resources you've created and bring it under Waldur management.
To get list of available volumes to import send GET request to
marketplace-offerings/
To import volume send POST-request with the following parameters to
marketplace-offerings/
- project a UUID of project used for import;
- backend_id a backend id of the resource to be imported;
- plan an optional UUID of plan used for import.
OpenStack instances
When a VM instance is created through Waldur, it is created using Cinder service with 2 volumes:
- root volume containing OS root image, bootable;
- data volume an empty volume for data.
VM resize (flavor). To change memory or CPU number, a flavor should be changed. Please note, that the disk size is not affected. Change can happen only for a stopped VM.
VM resize (disk). Increasing a disk size means extension of the data volume attached to the instance. The process includes detaching of a data volume, extending it and re-attaching to a VM. Disk can be increased only for a stopped VM.
Ended: Openstack
Ended: Plugins
Ended: Developer guide
Integrations ↵
Integrations
Waldur connects with a wide range of resource providers, identity services, and management tools to create a comprehensive orchestration platform. These integrations are continually expanded based on user requirements and can be customized for specific deployments.
Resource Provider Integrations
Compute and Cloud Services
-
OpenStack - Complete integration with OpenStack's core services (Keystone, Nova, Cinder, Glance, and Neutron) enabling management of projects, networks, subnets, floating IPs, instances, and more.
-
MS Azure - Support for creating, importing, and managing Virtual Machines on Microsoft Azure public cloud.
-
VMware - Integration with VMware virtualization platform for managing virtual infrastructure resources.
HPC and Scientific Computing
-
SLURM and MOAB - Integration with popular HPC workload managers and job scheduling systems through Waldur Site Agent, providing web-based self-service for accounts and allocation management. Site Agent supports both SLURM and MOAB workload managers, allowing efficient management of HPC resources.
-
Open OnDemand - Web-based portal for accessing HPC resources, integrated with Waldur through KeyCloak and SLURM plugins for unified account and permission management, enabling researchers to access computational resources through a user-friendly interface.
-
LEXIS Integration - Support for LEXIS (Large-scale EXecution for Industry & Society) platform integration, allowing Waldur resources to be linked with LEXIS workflows for enhanced HPC and data management capabilities.
Identity Provider Integrations
Waldur supports multiple authentication methods to meet diverse organizational needs:
-
EduGAIN - Full integration as an EduGAIN Service Provider with support for CoCo extensions, enabling secure federated academic identity management.
-
LDAP/Active Directory - Connect to existing directory services such as FreeIPA, OpenLDAP, or Active Directory with flexible schema configuration.
-
MyAccessID - Integration with GEANT's MyAccessID service, including support for Puhuri-specific APIs for enhanced functionality.
-
Keycloak - Comprehensive support for Keycloak identity servers with advanced features:
- Group synchronization capability, maintaining alignment between Keycloak groups and Waldur's internal structure
- Custom Keycloak mappers for Waldur OfferingUser usernames and group access
-
MinIO integration for policy-based access control
-
SAML2 - Support for generic SAML-based identity federations with automated account creation and updates based on SAML attributes.
-
Waldur DB - Built-in user management with customizable profile fields to adapt to specific deployment requirements.
-
GLAuth - Lightweight LDAP server integration for simple user directory management with automated config refreshing.
Service Desk Integrations
Waldur integrates with several service desk solutions to enable end-to-end support ticket management:
- Atlassian ServiceDesk - Integration with both on-premises and cloud versions
- Zammad - Open-source help desk/customer support system integration
- Microfocus SMAX - Enterprise service management integration
These integrations allow users to create support requests directly from Waldur, view ticket history and status, and interact with support personnel without leaving the Waldur interface.
AI and Automation Integrations
- Claude Desktop Integration - Waldur MCP (Model Context Protocol) server enables Claude AI assistant to query Waldur instances for reporting and deep analysis of resources and usage data, enhancing decision-making capabilities.
Additional Integrations
- Monitoring & Analytics - Support for Prometheus and Grafana for metrics collection and visualization.
- Backup Solutions - Database backup capabilities with support for S3-compatible storage services.
New integrations are continuously being developed based on user requirements. For custom integration needs, please contact the Waldur development team.
Systemd setup for glauth and config refresher
Prerequisites:
- Ensure
wgetis installed to a target machine as refreshing script uses it; - Install glauth binary to
/usr/bin/glauthupon staring glauth service, e.g. glauth v2.3.0.
Refresher service
Copy the files from this repository to a corresponding paths on the target host:
1 2 3 4 5 | |
Update .env file for the refresher service, i.e. /etc/glauth/refresher.env:
1 2 3 4 5 6 7 8 | |
Update systemd daemon configs and start and enabled the service:
1 2 3 | |
After some time, you should be able to check the prepared config file in /etc/glauth/config.cfg
Glauth service
Ensure glauth binary is installed in /usr/bin/glauth and perform the same steps for the glauth service:
1 2 3 4 | |
Integrating LEXIS with Waldur
Creating a LEXIS link for a resource
To create a LEXIS link integration with a Waldur resource the API request shown below can be sent (http refers to HTTPie client).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Alternatively this can be done through UI of Waldur as shown below.
Note: To be able to create a LEXIS link for a resource using Waldur UI:
- the offering related to the resource has to have
plugin_optionsset; - the feature
Enabled LEXIS link integrations for offerings.should be enabled in Waldur site settings.
Namely:
- heappe_url
- heappe_username
- heappe_cluster_id
- heappe_local_base_path
You can set these settings via UI:
After offering setup, you can create a LEXIS link for an existing resource:
Listing all LEXIS links
To view all LEXIS links the API request shown below can be sent.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Response example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Note: A LEXIS link can be in one of the following states:
- Pending
- Executing
- OK
- Erred
Listing LEXIS links can alternatively be done through Waldur UI by visiting resource details
or use administration menu if you are a staff user
Listing resources supporting LEXIS links
To list all resources supporting LEXIS links, the following API request can be used:
1 | |
The main filter is lexis_links_supported parameter.
The example response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | |
Deleting LEXIS links
To delete a LEXIS link the API request shown below can be sent.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Integrating Open OnDemand with Waldur and SLURM
Components used
Open OnDemand is an open source software that empowers students, researchers, and industry professionals with remote web access to supercomputers.
Waldur is an open source platform for running HPC and Cloud self service.
SLURM is an open source, fault-tolerant, and highly scalable cluster management and job scheduling system for large and small Linux clusters.
Keycloak is an open source software product to allow single sign-on with identity and access management aimed at modern applications and services.
MyAccessID (optional) Identity and Access Management Service is provided by GEANT with the purpose of offering a common Identity Layer for Infrastructure Service Domains (ISDs).
Integration overview
flowchart TD
User[👤 Local or federated user] --> Keycloak[🔐 Keycloak<br/>Identity Server]
Keycloak --> Waldur[🏛️ Waldur<br/>Management Platform]
Keycloak --> OOD[💻 Open OnDemand<br/>Web Interface]
LDAP[📋 Existing LDAP<br/>User Directory] --> LDAPService[🔧 LDAP Microservice]
LDAPService --> |SSSD-LDAP connect| SLURM[⚡ SLURM Cluster]
LDAPService --> |SSSD-LDAP connect| OOD
Waldur --> |Pulls users| LDAPService
Agent[🤖 Waldur Site Agent<br/>Resource Manager] --> |Pushes usages| Waldur
Agent --> |Pulls accounts| Waldur
Agent --> |Creates accounts| SLURM
Agent --> |Connects via SSH and launches jobs| SLURM
OOD --> |SSSD-LDAP connect| LDAPService
classDef user fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
classDef waldur fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
classDef external fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef infrastructure fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
class User user
class Waldur,LDAPService,Agent waldur
class LDAP,SLURM external
class Keycloak,OOD infrastructure
OOD requirements
- Shared user directory storage available both on SLURM and OOD VMs
- Dedicated hostname for OOD machine (like ood.example.com)
- Open TCP/80 and TCP/443, ability to connect LDAP on SLURM management machine
- Linux server with at least 4GB of RAM and 10GB of storage disk
Open OnDemand (OOD) installation and configuration
Follow the guide at https://github.com/OSC/ood-ansible to automatically install OOD on the Linux server.
Preparation guide:
- Setup a certificate to later use in ansible configuration:
1 2 | |
- In Keycloak create a client with authentication enabled for the Open OnDemand.
- Populate the ansible inventory.yaml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
- Apply the playbook:
1 | |
User authentication flow
-
OOD gets Linux username from preferred_username claim from Keycloak
-
OOD launches a "Per User Nginx" (PUN) environment after success user login
-
OOD connects to a SLURM cluster with the selected preferred_username
flowchart LR
User[👤 User] --> |Authenticates| OOD[💻 OOD starts per-user<br/>environment on the VM]
OOD --> |Logins as the specific user| SLURM[⚡ SLURM login node]
classDef user fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
classDef system fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef cluster fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class User user
class OOD system
class SLURM cluster
Keycloak configuration
Keycloak acts as a central Identity server for Waldur and Open OnDemand.
Steps to configure Keycloak:
- Configure Waldur and Open Ondemand clients
- Configure identity federation or user self-registration. If identity federation is used, common task is to configure username mapping like mentioned in https://puhuri.neic.no/idp_integration/use-cases/keycloak-integration/
- Install waldur-username-mapper for matching Keycloak or federated users with their respective Linux usernames: https://docs.waldur.com/integrations/waldur-keycloak-mapper/
Open OnDemand cluster configuration
To configure the connection between Open OnDemand and SLURM you need to manually configure the cluster config /etc/ood/config/clusters.d/my_cluster.yml:
1 2 3 4 5 6 7 8 9 | |
Waldur Site Agent configuration
Waldur Site Agent is a microservice for pulling allocation from Waldur and pushing the allocation usage statistics back to Waldur.
The microservice supports 2 modes of operation:
- Docker Compose - testing only, requires SLURM running in the same docker compose
- Native - production
Follow Waldur Site Agent documentation for installation guide. Make sure to enable the enable_user_homedir_account_creation flag - Open OnDemand does not work unless the user's home directory exists.
Host-based SSH authentication configuration
One of the methods to allow OOD to connect to SLURM login node is to setup a host-based “trust” or “SSH host-based authentication” between OOD VM and SLURM login node.
Use https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Host-based_Authentication as a guide.
Troubleshooting
- OOD login and preferredUsername fetching errors are located in /var/log/httpd/error.log or similar
- Per user application or SLURM configuration errors are located in /var/log/ondemand-nginx/USERNAME/
- By default, OOD does not well tolerate setting arbitrary prepends for the URL — prefer using https://ood.example.com instead of https://ood.example.com/
- Most common SSSD / LDAP configuration errors include:
- Wrong LDAP filter
- SSSD is not able to reach LDAP server (network error)
- SSSD installed without sssd-ldap plugin
- Home directory of the user has not been created
- Make sure to specify correct SLURM account in the OOD job configuration:
Service Desk integrations
Waldur supports integrations with several widely used service desk solutions. Integration allows creation of support requests directly from Waldur. In addition, replies from the support personnel are synchronised with Waldur so that the end users are never directly exposed to the service desk software. Users can see the issues' history, current status of active tickets as well as are able to interact with tickets from within Waldur.
Currently supported service desk solutions:
- Atlassian ServiceDesk (on-prem and cloud);
- Zammad;
- Microfocus SMAX.
Waldur Keycloak mapper
This repository contains custom Keycloak OIDC protocol mappers that integrate with Waldur (cloud platform) to provide dynamic user authentication and authorization capabilities. The mappers enable seamless integration between Keycloak identity provider and Waldur's permission system.
Waldur OfferingUser username mapper
Goal
Maps Keycloak users to their corresponding usernames in Waldur offerings, enabling consistent user identification across systems.
Capabilities
- Dynamic Username Resolution: Retrieves the preferred username for a user from Waldur's marketplace offering users API
- Token Integration: Adds the resolved username as a custom claim in OIDC tokens (ID token, access token, and user info)
- Offering-Specific Mapping: Configurable per offering UUID to support different username schemes across offerings
- Secure API Communication: Supports both TLS-validated and non-validated connections to Waldur API
- Error Handling: Graceful handling of API failures with comprehensive logging
Configuration Parameters
- Waldur API URL: Base URL to Waldur API (e.g.,
https://waldur.example.com/api/) - Offering UUID: Specific offering identifier in Waldur
- API Token: Authentication token for Waldur API access
- TLS Validation: Enable/disable TLS certificate validation
- Claim Name: Custom name for the token claim containing the username
Waldur Offering access mapper
Goal
Dynamically manages Keycloak group memberships and role assignments based on user access permissions in Waldur offerings.
Capabilities
- Dynamic Access Control: Checks user access to specific Waldur offerings in real-time
- Group Management: Automatically adds/removes users from Keycloak groups based on offering access
- Role Assignment: Grants or revokes Keycloak roles based on offering permissions
- Bidirectional Sync: Both grants access when user has permissions and revokes when access is lost
- Flexible Username Sources: Supports both Keycloak user ID and username for Waldur API calls
- Token Claims: Optionally adds group information to OIDC tokens
Configuration Parameters
- Waldur API URL: Base URL to Waldur API
- Offering UUID: Target offering identifier for access checks
- API Token: Waldur API authentication token
- Username Source: Choose between Keycloak user ID or username (
idorusername) - Group Management:
- Group name to manage
- Enable/disable automatic group addition
- Role Management:
- Role name to grant/revoke
- Enable/disable automatic role assignment
- Claim Name: Custom token claim for group information
Use Cases
- Service Access Control: Automatically grant access to services based on Waldur offering subscriptions
- Team Management: Sync team memberships between Waldur and Keycloak
- Resource Permissions: Map Waldur resource access to Keycloak authorization
Waldur MinIO mapper
Goal
Generates MinIO-compatible policy claims for object storage access control based on user permissions in Waldur.
Capabilities
- Permission Aggregation: Collects user permissions from Waldur across different scope types
- Policy Generation: Creates comma-separated lists of resource UUIDs for MinIO policies
- Scope-Based Filtering: Supports both
customerandprojectscope types for permission queries - Role-Based Access: Filters permissions by user roles (owner, manager, etc.) within each scope
- Token Integration: Embeds policy information directly in OIDC tokens for MinIO consumption
- Flexible Username Sources: Supports both Keycloak user ID and username for API authentication
- Secure Communication: Configurable TLS validation for API calls
Configuration Parameters
- Waldur API URL: Base URL to Waldur API
- API Token: Waldur API authentication token
- Permission Scope: Choose between
customerorprojectscope types - TLS Validation: Enable/disable certificate validation
- Username Source: Use Keycloak user ID or username for API calls
- Claim Name: Token claim name for the policy data
Example Output
For a user who is an owner in customers C1, C2 and manager in projects P1, P2:
Customer scope: policy=c1-uuid-here,c2-uuid-here
Project scope: policy=p1-uuid-here,p2-uuid-here
MinIO Integration
The generated policy claims can be used by MinIO to: - Bucket Access Control: Grant access to buckets based on customer/project membership - Object-Level Permissions: Control file access within buckets - Dynamic Policy Updates: Automatically update access as Waldur permissions change
Building from Source
Prerequisites
- Java 8 or higher: The project is compiled with Java 8 target compatibility
- Apache Maven 3.6+: Required for building and dependency management
- Git: For cloning the repository
Build Instructions
- Clone the repository:
1 2 | |
- Build the JAR file:
1 | |
This will:
- Download all required dependencies
- Compile the Java source code
- Run any tests (if present)
- Create a shaded JAR with all dependencies included
- Place the built JAR in the target/ directory
- Locate the built JAR:
The compiled JAR file will be available at:
1 | |
Build Options
- Clean build: Remove previous build artifacts before building
1 | |
- Skip tests: Build without running tests (if any)
1 | |
- Custom version: Build with a specific version number
1 | |
Development Environment
For development, you can use any Java IDE that supports Maven projects:
- IntelliJ IDEA: Import as Maven project
- Eclipse: Import existing Maven project
- VS Code: Use Java Extension Pack with Maven support
The project uses Maven's standard directory layout:
- src/main/java/: Java source files
- src/main/resources/: Resource files and service registration
- target/: Build output directory
Installation and setup
Custom mapper setup includes the following steps:
-
Download the jar file to your machine, e.g. one of these releases.
-
Add the jar file to the providers directory. If a Keycloak server is running in a Docker container via Docker Compose, you can mount the file as a volume:
1 2 3 4 5 6 7 8
keycloak: image: "quay.io/keycloak/keycloak:18.0.2" container_name: keycloak command: start-dev --http-relative-path /auth ports: - "${KEYCLOAK_PORT:-8080}:8080" volumes: - waldur-keycloak-mapper-1.0.jar:/opt/keycloak/providers/waldur-keycloak-mapper-1.0.jar -
Restart the deployment to apply the changes.
-
You can find the mapper in client menu under "Mappers" section. The title is "Waldur preferred username mapper"
Waldur MCP server
Waldur MCP server enables integration between Waldur instance and Claude Desktop by implementing the Model Context Protocol (MCP). This allows Claude to interact with your Waldur instance directly.
Quickstart
-
Install Claude Desktop for your platform from the Claude Desktop releases page
-
Install Python 3.13 or higher.
-
Install uv package manager.
Installation
To install the package:
1 | |
Or with uv:
1 | |
Generate Waldur Token
- Log in to your Waldur instance
- Navigate to Username > Credentials > API Token
- Generate a new token with appropriate token lifetime - you'll need it for configuration
Claude Desktop MCP Server Configuration
On Windows: %APPDATA%\Claude\claude_desktop_config.json
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Development/Unpublished Servers Configuration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Published Servers Configuration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Debugging
On macOS, log files are located at ~/Library/Logs/Claude/mcp.log
If you encounter a spawn uvx ENOENT error, verify that your PATH environment variable includes the Python installation directory where uv is installed. Alternatively, you can specify the full path to uvx in the configuration file, for example:
~/Library/Frameworks/Python.framework/Versions/3.13/bin/uvx
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm with this command:
1 | |
When debugging, you'll need to set the required environment variables. Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
Common issues
- Invalid token: Verify token permissions and expiration
- Connection issues: Check WALDUR_API_URL is accessible
Ended: Integrations
Integrator guide ↵
Ansible Waldur Module Generator
This project is a code generator designed to automate the creation of a self-contained Ansible Collection for the Waldur API. By defining a module's behavior and its API interactions in a simple YAML configuration file, you can automatically generate robust, well-documented, and idempotent Ansible modules, perfectly packaged for distribution and use.
The primary goal is to eliminate boilerplate code, enforce consistency, and dramatically speed up the development process for managing Waldur resources with Ansible. Waldur Ansible Collection is published on Ansible Galaxy.
Core Concept
The generator works by combining three main components:
- OpenAPI Specification (
waldur_api.yaml): The single source of truth for all available API endpoints, their parameters, and their data models. - Generator Configuration (
generator_config.yaml): A user-defined YAML file where you describe the Ansible Collection and the modules you want to create. This is where you map high-level logic (like "create a resource") to specific API operations. - Plugins: The engine of the generator. A plugin understands a specific workflow or pattern (e.g., fetching facts, simple CRUD, or complex marketplace orders) and contains the logic to build the corresponding Ansible module code.
Getting Started
Prerequisites
- Python 3.11+
- Poetry (for dependency management and running scripts)
- Ansible Core (
ansible-core >= 2.14) for building and using the collection.
Installation
-
Clone the repository:
1 2
git clone <your-repo-url> cd ansible-waldur-generator -
Install the required Python dependencies using Poetry:
This will create a virtual environment and install packages like1poetry installPyYAML, andPytest.
Running the Generator
To generate the Ansible Collection, run the generate script defined in pyproject.toml:
1 | |
By default, this command will:
-
Read
inputs/generator_config.yamlandinputs/waldur_api.yaml. -
Use the configured collection name (e.g.,
waldur.openstack) to create a standard Ansible Collections structure. -
Place the generated collection into the
outputs/directory.
The final structure will look like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
You can customize the path using command-line options:
1 | |
poetry run ansible-waldur-generator --help for a full list of options.
The Plugin System
The generator uses a plugin-based architecture to handle different types of module logic. Each plugin is specialized for a common interaction pattern with the Waldur API. When defining a module in generator_config.yaml, the type key determines which plugin will be used.
The header defines Ansible collection namespace, name and version.
1 2 3 4 5 6 7 | |
Below is a detailed explanation of each available plugin.
1. The facts Plugin
-
Purpose: For creating read-only Ansible modules that fetch information about existing resources. These modules never change the state of the system and are analogous to Ansible's
_factsmodules (e.g.,setup_facts). -
Workflow:
- The module's primary goal is to find and return resource data based on an identifier (by default,
name). - If the
many: trueoption is set, the module returns a list of all resources matching the filter criteria. - If
many: false(the default), the module expects to find a single resource. It will fail if zero or multiple resources are found, prompting the user to provide a more specific identifier. - It can be configured with
context_params(liketenantorproject) to filter the search within a parent resource.
- The module's primary goal is to find and return resource data based on an identifier (by default,
-
Configuration Example (
generator_config.yaml): This example creates awaldur_openstack_security_group_factsmodule to get information about security groups within a specific tenant.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
modules: - name: security_group_facts plugin: facts resource_type: "security group" description: "Get facts about OpenStack security groups." # Defines the base prefix for API operations. The 'facts' plugin uses # this to automatically infer the necessary operation IDs: # - `check`: via `openstack_security_groups_list` # - `retrieve`: via `openstack_security_groups_retrieve` # The 'operations' block is therefore not needed for a conventional API. base_operation_id: "openstack_security_groups" # If `true`, the module is allowed to return a list of multiple resources # that match the filter criteria. # If `false` (the default), the module would fail if more than one # resource is found, ensuring a unique result. many: true # Defines additional parameters that can be used to filter the search. # This is essential for finding resources within a specific scope. context_params: - # The name of the Ansible parameter the user will provide. name: "tenant" description: "The name or UUID of the tenant to filter security groups by." # Tells the generator how to resolve the user-provided 'tenant' name # into the UUID needed by the API. The string "openstack_tenants" is # a shorthand that expands to the standard list/retrieve operations for tenants. resolver: "openstack_tenants" # Specifies the exact query parameter key to use when calling the 'check' # operation. The generator will construct a query like: # `?tenant_uuid=<resolved_tenant_uuid>` filter_key: "tenant_uuid"
2. The crud Plugin
-
Purpose: For managing the full lifecycle of resources with simple, direct, synchronous API calls. This is ideal for resources that have distinct
create,list,update, anddestroyendpoints. The plugin supports both top-level resources (like projects) and nested resources (like security groups under a tenant). -
Workflow:
state: present:- Calls the
listoperation to check if a resource with the given name already exists. - If it does not exist, it calls the
createoperation.resolversandpath_param_mapsare used to convert parent resource names into the required API URLs or path UUIDs. - If it does exist, it checks for changes:
- It compares values for parameters listed in
update_config.fieldsand sends aPATCHrequest via theupdateoperation if any have changed. - It checks if any parameters for special
update_config.actionsare provided and calls their respectivePOSToperations.- Asynchronous Actions: If the
POSTaction returns a202 Acceptedstatus code, the module recognizes it as an asynchronous task. - If the
wait: trueparameter is set (the default), the module will poll the resource's status until it reaches a stable state (e.g., "OK" or "ERRED"). - You can configure the stable/error states and polling parameters in
generator_config.yaml.
- Asynchronous Actions: If the
- It compares values for parameters listed in
- Calls the
state: absent:- Calls the
listoperation to find the resource. - If it exists, it calls the
destroyoperation to remove it.
- Calls the
-
Return Values:
resource: A dictionary representing the final state of the resource after the operation.commands: A list of dictionaries detailing the HTTP requests that were made to achieve the desired state. This is useful for auditing and debugging.changed: A boolean indicating if any changes were made.
-
Configuration Example (
generator_config.yaml): This example creates asecurity_groupmodule that is a nested resource under a tenant, and supports both simple updates (description) and a special action (set_rules).1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
modules: - name: security_group plugin: crud resource_type: "OpenStack security group" description: "Manage OpenStack Security Groups and their rules in Waldur." # The core prefix for inferring standard API operation IDs. # By providing this, the generator automatically enables: # - `check`: via `openstack_security_groups_list` # - `delete`: via `openstack_security_groups_destroy` base_operation_id: "openstack_security_groups" # The 'operations' block is now only for EXCEPTIONS and detailed configuration. # Since 'check' and 'delete' follow the convention, they are omitted here. operations: # Defines special, non-standard update actions that call dedicated # POST endpoints. These are idempotent and schema-aware. actions: # 'set_rules' is the logical name for our action. set_rules: # The specific operationId to call when this action is triggered. operation: "openstack_security_groups_set_rules" # The name of the Ansible parameter that triggers this action and # provides its data. The runner will only call the operation if # the user provides the 'rules' parameter AND its value differs # from the resource's current state. param: "rules" # Override the 'create' operation. # This is necessary because creating a security group is a NESTED action # under a tenant, so it doesn't follow the standard '[base_id]_create' pattern. create: id: "openstack_tenants_create_security_group" # This block is crucial for nested endpoints. It maps the placeholder # in the API URL path (`/api/openstack-tenants/{uuid}/...`) to the # name of an Ansible parameter (`tenant`). path_params: uuid: "tenant" wait_config: ok_states: ["OK"] # The state(s) that mean success erred_states: ["ERRED"] # The state(s) that mean failure state_field: "state" # The key in the resource dict that holds the state # This block defines how to resolve dependencies. resolvers: # We need a resolver for 'tenant' because it's used in `path_params` for # the 'create' operation. This tells the generator how to convert the # user-friendly tenant name or UUID into the internal API URL/UUID # needed for the API call. tenant: "openstack_tenants" # Shorthand for the tenants resolver
3. The order Plugin
- Purpose: The most powerful and specialized plugin, designed for resources managed through Waldur's asynchronous marketplace order workflow. This is the correct plugin for nearly all major cloud resources like VMs, volumes, databases, etc.
Attribute Inference: To simplify configuration, you can specify an offering_type. The generator will then look for a corresponding schema in the OpenAPI specification (e.g., Marketplace.Volume becomes MarketplaceVolumeCreateOrderAttributes) and automatically generate all the necessary attribute_params. Any manually defined attribute_params will override the inferred ones, allowing for customization.
Termination Attributes: You can define a set of optional parameters that will be passed as attributes in the termination order. This is useful for resources that require extra options during deletion, such as forcing destruction or deleting associated sub-resources. This is configured under the operations.delete key. You can use the maps_to field to define a different name for the attribute in the API payload.
-
Workflow: This plugin encapsulates a complex, multi-step process:
state: present:- Checks for the existence of the final resource (e.g., the volume) using
existence_check_op. - If it does not exist, it creates a marketplace order via
marketplace_orders_createand, ifwait: true, polls for completion. - If it does exist, it checks for changes. It supports two kinds of updates:
- Synchronous Updates: For simple fields inferred from update request schema, it sends a direct
PATCHrequest. - Asynchronous Actions: For complex operations defined in
update_actions, it sends aPOSTrequest. If this request returns a202 Acceptedstatus, the module recognizes it as an asynchronous task. Ifwait: trueis set, the module will then poll the resource's status (not the order) until it reaches a stable state (e.g., "OK" or "Erred"), which can be configured viawait_config.
- Synchronous Updates: For simple fields inferred from update request schema, it sends a direct
- Checks for the existence of the final resource (e.g., the volume) using
state: absent:- Finds the existing resource.
- Calls the standard
marketplace_resources_terminateendpoint, passing any configured termination attributes.
-
Return Values:
resource: A dictionary representing the final state of the resource after a successful operation.commands: A list of dictionaries detailing the HTTP requests that were made.changed: A boolean indicating if any changes were made.
-
Configuration Example (
generator_config.yaml):1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
modules: - name: volume plugin: order resource_type: "OpenStack volume" description: "Create, update, or delete an OpenStack Volume via the marketplace." # By specifying the offering type, the generator will automatically find the # corresponding schema in the OpenAPI specification (e.g., for volume size, # image, etc.) and generate all the necessary Ansible parameters. # This dramatically reduces the amount of manual configuration required. offering_type: "OpenStack.Volume" # The base prefix for inferring standard API operation IDs. # The 'order' plugin uses this to automatically enable: # - `check`: via `openstack_volumes_list` (to see if the volume already exists) base_operation_id: "openstack_volumes" # This block defines how to resolve dependencies and filter choices for the # module's parameters. resolvers: # This resolver is for the 'type' parameter, which was automatically # inferred from the offering_type schema. type: # Shorthand for the volume types API endpoints. base: "openstack_volume_types" # This is a powerful feature for dependent filtering. It tells the # generator to filter the list of available volume types based on # the cloud settings of the selected 'offering'. filter_by: - # The parameter whose resolved value we will use as the filter source. source_param: "offering" # The key to extract from the resolved offering's API response. source_key: "scope_uuid" # The query parameter to use when listing volume types. The final # API call will be something like: # `.../openstack-volume-types/?tenant_uuid=<offering_scope_uuid>` target_key: "tenant_uuid" # The same dependent filtering pattern is applied to the 'image' parameter. image: base: "openstack_images" filter_by: - source_param: "offering" source_key: "scope_uuid" target_key: "tenant_uuid" # And again for the 'availability_zone' parameter. availability_zone: base: "openstack_volume_availability_zones" filter_by: - source_param: "offering" source_key: "scope_uuid" target_key: "tenant_uuid"
4. The actions Plugin
-
Purpose: For creating modules that execute specific, one-off actions on an existing resource. This is ideal for operations that don't fit the standard CRUD lifecycle, such as
reboot,connect,pull, orstart. These modules are essentially command runners for your API. -
Workflow:
- The module first finds the target resource using an identifier (e.g.,
name) and optionalcontext_params. It will fail if the resource is not found. - It then executes a
POSTrequest to the API endpoint corresponding to the user-selectedaction. - The module always reports
changed=Trueupon successful execution of an action. - It re-fetches the resource's state after the action and returns it, allowing users to see the result of the command.
- The module first finds the target resource using an identifier (e.g.,
-
Configuration Example (
generator_config.yaml): This example creates asubnet_actionmodule to connect or disconnect a subnet in OpenStack.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
modules: - name: subnet_action plugin: actions resource_type: "OpenStack subnet" description: "Perform actions on OpenStack Subnets." # The base operation ID used to infer `_list`, `_retrieve`, and action operations. # For example, 'connect' becomes 'openstack_subnets_connect'. base_operation_id: "openstack_subnets" # A list of action names. The generator infers the full `operationId` for each # action by appending the name to the `base_operation_id` (e.g., # `base_operation_id: "openstack_subnets"` and action `"connect"` becomes # `openstack_subnets_connect`). These names become the choices for the # module's `action` parameter. actions: - connect - disconnect - pull # Optional context parameters to help locate the resource. context_params: - name: "tenant" description: "The name or UUID of the tenant to filter subnets by." resolver: "openstack_tenants" filter_key: "tenant_uuid"
Reusable Configuration with YAML Anchors
As your generator_config.yaml file grows, you'll notice that certain configurations, especially for resolvers or update_config, are repeated across multiple modules. To keep your configuration DRY (Don't Repeat Yourself) and improve maintainability, you can use a standard YAML feature called anchors (&) and aliases (*).
The generator's YAML parser supports this out of the box, allowing you to define a configuration block once and reuse it wherever needed.
A common convention is to create a top-level key (e.g., definitions or x-fragments) to hold your reusable blocks.
Example 1: Reusing a Common Resolver
Imagine you have two modules that both need to resolve a tenant.
Before (Repetitive Configuration):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
After (Using a Reusable Anchor):
We define the resolver once under a definitions key and give it an anchor &tenant_resolver. Then, we use the alias *tenant_resolver to insert that block in multiple places.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
Example 2: Creating a Reusable Module Template
You can make entire module definitions reusable by combining anchors with the YAML merge key (<<). This allows you to define a "base" module and then override or extend it for specific cases.
This is perfect for a set of simple CRUD resources that share the same plugin type and update logic but differ only in their resource_type and API base_operation_id.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
By using these standard YAML features, you can significantly reduce duplication and make your generator configuration cleaner and easier to manage.
Architecture
The generator's architecture is designed to decouple the Ansible logic from the API implementation details. It achieves this by using the generator_config.yaml as a "bridge" between the OpenAPI specification and the generated code. The generator can produce multiple, self-contained Ansible Collections in a single run.
graph TD
subgraph "Inputs"
B[waldur_api.yaml]
A[generator_config.yaml]
end
subgraph "Engine"
C{Generator Script}
D[Generic Module <br>Template String]
end
subgraph "Output"
E[Generated Ansible Module <br>project.py]
end
A --> C
B --> C
C -- Builds GenerationContext via Plugins --> D
D -- Renders final code --> E
Plugin-Based Architecture
The system's flexibility comes from its plugin architecture. The Generator itself does not know the details of a crud module versus an order module. It only knows how to interact with the BasePlugin interface.
- Plugin Discovery: The
PluginManageruses Python's entry point system to automatically discover and register plugins at startup. - Delegation: The
Generatorreads a module'spluginkey from the config and asks thePluginManagerfor the corresponding plugin. - Encapsulation: Each plugin fully encapsulates the logic for its type. It knows how to parse its specific YAML configuration, interact with the
ApiSpecParserto get operation details, and build the finalGenerationContextneeded to render the module. - Plugin Contract: All plugins implement the
BasePlugininterface, which requires a centralgenerate()method. This ensures a consistent interaction pattern between theGeneratorand all plugins.
Runtime Logic (Runners and the Resolver)
The logic that executes at runtime inside an Ansible module is split between two key components: Runners and the ParameterResolver.
-
Runners (
runner.py): Each plugin is paired with arunner.pyfile (e.g.,CrudRunner,OrderRunner). This runner contains the Python logic for the module's state management (create, update, delete). The generated module file (e.g.,project.py) is a thin wrapper that calls its corresponding runner. The generator copies the runner and abase_runner.pyinto the collection'splugins/module_utils/directory and rewrites their imports, making the collection fully self-contained. -
ParameterResolver: This is a powerful, centralized utility that is composed within each runner. Its sole responsibility is to handle the complex, recursive resolution of user-friendly inputs (like resource names) into the URLs or other data structures required by the API. By centralizing this logic, runners are kept clean and focused on their state-management tasks. The resolver supports:
- Simple name/UUID to URL conversion.
- Recursive resolution of nested dictionaries and lists.
- Caching of API responses to avoid redundant network calls.
- Dependency-based filtering (e.g., filtering flavors by the tenant of a resolved offering).
The "Plan and Execute" Runtime Model
While the generator builds the module code, the real intelligence lies in the runtime architecture it creates. All generated modules follow a robust, two-phase "plan and execute" workflow orchestrated by a BaseRunner class, which is vendored into the collection's module_utils.
-
Planning Phase: The
BaseRunnerfirst determines the current state of the resource (does it exist?). It then calls aplan_*method (e.g.,plan_creation,plan_update) corresponding to the desired state. This planning method does not make any changes to the system. Instead, it builds a list ofCommandobjects. EachCommandis a simple data structure that encapsulates a single, atomic API request (method, path, body). -
Execution Phase: If not in check mode, the
BaseRunneriterates through the generated plan and executes eachCommand, making the actual API calls.
This separation provides key benefits:
- Perfect Check Mode: Since the planning phase is purely declarative and makes no changes, check mode works perfectly by simply serializing the plan without executing it.
- Clear Auditing: The final output of a module includes a commands key, which is a serialized list of the exact HTTP requests that were planned and executed. This provides complete transparency.
- Consistency: All module types (crud, order) use the same underlying BaseRunner and Command structure, ensuring consistent behavior.
The diagram below illustrates this runtime workflow.
sequenceDiagram
participant Ansible
participant Generated Module
participant Runner
participant API
Ansible->>+Generated Module: main()
Generated Module->>+Runner: run()
Runner->>Runner: check_existence()
Runner->>API: GET /api/resource/?name=...
API-->>Runner: Resource exists / does not exist
Note over Runner: Planning Phase (No Changes)
Runner->>Runner: plan_creation() / plan_update()
Note over Runner: Builds a list of Command objects
alt Check Mode
Runner->>Generated Module: exit_json(changed=true, commands=[...])
else Execution Mode
Runner->>Runner: execute_change_plan()
loop For each Command in plan
Runner->>API: POST/PATCH/DELETE ...
API-->>Runner: API Response
end
Runner->>Generated Module: exit_json(changed=true, resource={...}, commands=[...])
end
deactivate Runner
Generated Module-->>-Ansible: Final Result
The Resolvers Concept: Bridging the Human-API Gap
At the heart of the generator's power is the Resolver System. Its fundamental purpose is to bridge the gap between a human-friendly Ansible playbook and the strict requirements of a machine-focused API.
-
The Problem: An Ansible user wants to write
customer: 'Big Corp Inc.'. However, the Waldur API requires a full URL for the customer field when creating a new project, likecustomer: 'https://api.example.com/api/customers/a1b2-c3d4-e5f6/'. Asking users to find and hardcode these URLs is cumbersome, error-prone, and goes against the principle of declarative, readable automation. -
The Solution: Resolvers automate this translation. You define how to find a resource (like a customer) by its name or UUID, and the generated module's runtime logic (the "runner") will handle the lookup and substitution for you.
This system is used by all plugins but is most critical for the crud and order plugins, which manage resource relationships. Let's explore how it works using examples from our generator_config.yaml.
Simple Resolvers
A simple resolver handles a direct, one-to-one relationship. It takes a name or UUID and finds the corresponding resource's URL. This is common for top-level resources or parent-child relationships.
-
Mechanism: It works by using two API operations which are inferred from a base string:
- A
listoperation to search for the resource by its name (e.g.,customers_listwith aname_exactfilter). - A
retrieveoperation to fetch the resource directly if the user provides a UUID (this is a performance optimization).
- A
-
Configuration Example (from
waldur.structure): This example configures resolvers for thecustomerandtypeparameters in theprojectmodule.1 2 3 4 5 6 7 8 9 10 11 12
# In generator_config.yaml - name: project plugin: crud base_operation_id: "projects" resolvers: # Shorthand notation. This tells the generator: # 1. There is an Ansible parameter named 'customer'. # 2. To resolve it, use the 'customers_list' and 'customers_retrieve' API operations. customer: "customers" # Another example for the project's 'type'. type: "project_types" -
Runtime Workflow: When a user runs a playbook with
customer: "Big Corp", theprojectmodule's runner executes the following logic:sequenceDiagram participant User as Ansible User participant Module as waldur.structure.project participant Resolver as ParameterResolver participant Waldur as Waldur API User->>Module: Executes playbook with `customer: "Big Corp"` Module->>Resolver: resolve("customer", "Big Corp") Resolver->>Waldur: GET /api/customers/?name_exact="Big Corp" (via 'customers_list') Waldur-->>Resolver: Returns customer object `{"url": "...", "name": "Big Corp", ...}` Resolver-->>Module: Returns resolved URL: "https://.../customers/..." Module->>Waldur: POST /api/projects/ with body `{"customer": "https://.../customers/...", "name": "..."}` Waldur-->>Module: Returns newly created project Module-->>User: Success (changed: true)
Advanced Resolvers: Dependency Filtering
The true power of the resolver system shines when dealing with nested or context-dependent resources. This is essential for the order plugin.
-
The Problem: Many cloud resources are not globally unique. For example, an OpenStack "flavor" named
smallmight exist in multiple tenants. To create a VM, you need the specificsmallflavor that belongs to the tenant where you are deploying. A simple name lookup is not enough. -
The Solution: The
orderplugin's resolvers support afilter_byconfiguration. This allows one resolver's lookup to be filtered by the results of another, previously resolved parameter. -
Configuration Example (from
waldur.openstack): Thisinstancemodule resolves aflavor. The list of available flavors must be filtered by the tenant, which is derived from theofferingthe user has chosen.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
# In generator_config.yaml - name: instance plugin: order offering_type: OpenStack.Instance # ... resolvers: # The 'flavor' resolver depends on the 'offering'. flavor: # Shorthand to infer 'openstack_flavors_list' and 'openstack_flavors_retrieve' base: "openstack_flavors" # This block establishes the dependency. filter_by: - # 1. Look at the result of the 'offering' parameter. source_param: "offering" # 2. From the resolved offering's API response, get the value of the 'scope_uuid' key. # (In Waldur, this is the UUID of the tenant associated with the offering). source_key: "scope_uuid" # 3. When calling 'openstack_flavors_list', add a query parameter. # The parameter key will be 'tenant_uuid', and its value will be the # 'scope_uuid' we just extracted. target_key: "tenant_uuid" -
Runtime Workflow: This is a multi-step process managed internally by the runner and resolver.
sequenceDiagram participant User as Ansible User participant Runner as OrderRunner participant Resolver as ParameterResolver participant Waldur as Waldur API Note over User, Runner: Playbook runs with `offering: "VMs in Tenant A"` and `flavor: "small"` Runner->>Resolver: resolve("offering", "VMs in Tenant A") Resolver->>Waldur: GET /api/marketplace-public-offerings/?name_exact=... Waldur-->>Resolver: Returns Offering object `{"url": "...", "scope_uuid": "tenant-A-uuid", ...}` Note right of Resolver: Caches the full Offering object internally. Resolver-->>Runner: Returns Offering URL Runner->>Resolver: resolve("flavor", "small") Note right of Resolver: Sees `filter_by` config for 'flavor'. Resolver->>Resolver: Looks up 'offering' in its cache. Finds the object. Resolver->>Resolver: Extracts `scope_uuid` ("tenant-A-uuid") from cached object. Note right of Resolver: Builds query: `?name_exact=small&tenant_uuid=tenant-A-uuid` Resolver->>Waldur: GET /api/openstack-flavors/?name_exact=small&tenant_uuid=tenant-A-uuid Waldur-->>Resolver: Returns the correct Flavor object for Tenant A. Resolver-->>Runner: Returns Flavor URL Note over Runner, Waldur: Runner now has all resolved URLs and creates the final marketplace order.
Resolving Lists of Items
Another common scenario is a parameter that accepts a list of resolvable items, such as the security_groups for a VM.
-
The Problem: The user wants to provide a simple list of names:
security_groups: ['web', 'ssh']. The API, however, often requires a more complex structure, like a list of objects:security_groups: [{ "url": "https://.../sg-web-uuid/" }, { "url": "https://.../sg-ssh-uuid/" }]. -
The Solution: The resolver system handles this automatically. The generator analyzes the OpenAPI schema for the
offering_type. When it sees that thesecurity_groupsattribute is anarrayof objects with aurlproperty, it configures the runner to:- Iterate through the user's simple list (
['web', 'ssh']). - Resolve each name individually to its full object, using the
security_groupsresolver configuration (which itself uses dependency filtering, as shown above). - Extract the
urlfrom each resolved object. - Construct the final list of dictionaries in the format required by the API.
- Iterate through the user's simple list (
This powerful abstraction keeps the Ansible playbook clean and simple, hiding the complexity of the underlying API. The user only needs to provide the list of names, and the resolver handles the rest.
The Unified Update Architecture
The generator employs a sophisticated, unified architecture for handling resource updates within state: present tasks. This system is designed to be both powerful and consistent, ensuring that all generated modules—regardless of their plugin (crud or order)—behave predictably and correctly, especially when dealing with complex data structures.
The core design principle is "Specialized Setup, Generic Execution." Specialized runners (CrudRunner, OrderRunner) are responsible for preparing a context-specific environment, while a shared BaseRunner provides a powerful, generic toolkit of "engine" methods that perform the actual update logic. This maximizes code reuse and enforces consistent behavior.
Core Components
-
BaseRunner(The Engine): This class contains the three central methods that form the update toolkit:_handle_simple_updates(): Manages directPATCHrequests for simple, mutable fields (likenameordescription)._handle_action_updates(): Orchestrates the entire lifecycle for complex, action-based updates (like setting security group rules)._normalize_for_comparison(): A critical utility that provides robust, order-insensitive idempotency checks for complex data types like lists of dictionaries.
-
Specialized Runners (The Orchestrators):
CrudRunner: Uses theBaseRunnertoolkit directly with minimal setup, as its context is typically straightforward.OrderRunner: Performs crucial, context-specific setup (like priming its cache with the marketplaceoffering) before delegating to the sameBaseRunnertoolkit.
Deep Dive: The Idempotency Engine (_normalize_for_comparison)
The cornerstone of the update architecture is its ability to correctly determine if a change is needed, especially for lists of objects where order does not matter. The _normalize_for_comparison method is the "engine" that makes this possible.
Problem: How do you compare [{'subnet': 'A'}] from a user's playbook with [{'uuid': '...', 'subnet': 'A', 'name': '...'}] from the API? How do you compare ['A', 'B'] with ['B', 'A']?
Solution: The method transforms both the desired state and the current state into a canonical, order-insensitive, and comparable format (a set) before checking for equality.
Mode A: Complex Objects (e.g., a list of ports)
When comparing lists of dictionaries, the method uses idempotency_keys (provided by the generator plugin based on the API schema) to understand what defines an object's identity.
- Input (Desired State):
[{'subnet': 'url_A', 'fixed_ips': ['1.1.1.1']}] - Input (Current State):
[{'uuid': 'p1', 'subnet': 'url_A', 'fixed_ips': ['1.1.1.1']}] - Idempotency Keys:
['subnet', 'fixed_ips'] - Process:
- For each dictionary, it creates a new one containing only the
idempotency_keys. - It converts this filtered dictionary into a sorted, compact JSON string (e.g.,
'{"fixed_ips":["1.1.1.1"],"subnet":"url_A"}'). This string is deterministic and hashable. - It adds these strings to a set.
- For each dictionary, it creates a new one containing only the
- Result: Both inputs are transformed into the exact same set:
{'{"fixed_ips":["1.1.1.1"],"subnet":"url_A"}'}. The comparisonset1 == set2evaluates toTrue, and no change is triggered. Idempotency is achieved.
Mode B: Simple Values (e.g., a list of security_group URLs)
When comparing lists of simple values (strings, numbers), the solution is simpler.
- Input (Desired State):
['url_A', 'url_B'] - Input (Current State):
['url_B', 'url_A'] - Process: It converts both lists directly into sets.
- Result: Both inputs become
{'url_A', 'url_B'}. The comparisonset1 == set2isTrue, and no change is triggered.
Handling Critical Edge Cases
The unified architecture is designed to handle two critical, real-world edge cases that often break simpler update logic.
Edge Case 1: Asymmetric Data Representation
- Problem: An existing resource might represent a relationship with a "rich" list of objects (e.g.,
security_groups: [{'name': 'sg1', 'url': '...'}]), but the API action to update them requires a "simple" list of strings (e.g.,['url1', 'url2']). - Solution: The
_handle_action_updatesmethod contains specific logic to detect this asymmetry. If the resolved user payload is a simple list of strings, but the resource's current value is a complex list of objects, it intelligently transforms the resource's list by extracting theurlfrom each object before passing both simple lists to the normalizer. This ensures a correct, apples-to-apples comparison.
Edge Case 2: Varied API Payload Formats
- Problem: Some API action endpoints expect a JSON object as the request body (e.g.,
{"rules": [...]}), while others expect a raw JSON array (e.g.,[...]). - Solution: The generator plugin analyzes the OpenAPI specification for each action endpoint. It passes a boolean flag,
wrap_in_object, in the runner's context. The_handle_action_updatesmethod reads this flag and constructs thefinal_api_payloadin the precise format the API endpoint requires, avoiding schema validation errors.
This robust, flexible, and consistent architecture ensures that all generated modules are truly idempotent and can handle the full spectrum of simple and complex update scenarios presented by the Waldur API.
Component Responsibilities
-
Core System (
generator.py,plugin_manager.py):Generator: The main orchestrator. It is type-agnostic. Its job is to:- Loop through each collection definition in the config.
- For each collection, create the standard directory skeleton (
galaxy.yml, etc.). - Loop through the module definitions within that collection.
- Delegate to the correct plugin to get a
GenerationContext. - Render the final module file.
- Copy the plugin's
runner.pyand a sharedbase_runner.pyintomodule_utils, rewriting their imports to make the collection self-contained.
PluginManager: The discovery service. It finds and loads all available plugins registered via entry points.
-
Plugin Interface (
interfaces/plugin.py):BasePlugin: An abstract base class defining the contract for all plugins. It requires agenerate()method that receives the module configuration, API parsers, and the current collection context (namespace/name) and returns a completeGenerationContext.
-
Runtime Components (
interfaces/runner.py,interfaces/resolver.py):BaseRunner: A concrete base class that provides shared runtime utilities for all runners, such as thesend_requesthelper for making API calls.ParameterResolver: A reusable class that encapsulates all logic for converting user inputs (names/UUIDs) into API-ready data. It is instantiated by runners.
-
Concrete Plugins and Runners (e.g.,
plugins/crud/):- Each plugin is a self-contained directory with:
config.py: Pydantic models for validating its specific YAML configuration.plugin.py: The generation-time logic. It implementsBasePluginand is responsible for creating the module's documentation, parameters, and runner context.runner.py: The runtime logic. It inherits fromBaseRunner, uses theParameterResolver, and executes the module's core state management tasks (e.g., creating a resource if it doesn't exist).
- Each plugin is a self-contained directory with:
How to Add a New Plugin
This architecture makes adding support for a new module type straightforward:
-
Create Plugin Directory: Create a new directory for your plugin, e.g.,
ansible_waldur_generator/plugins/my_type/. -
Define Configuration Model: Create
plugins/my_type/config.pywith a Pydantic model inheriting fromBaseModelto define and validate the YAML structure for your new type. -
Implement the Runner: Create
plugins/my_type/runner.py. Define a class (e.g.,MyTypeRunner) that inherits fromBaseRunnerand implements the runtime logic for your module. -
Implement the Plugin Class: Create
plugins/my_type/plugin.py:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
from ansible_waldur_generator.interfaces.plugin import BasePlugin from ansible_waldur_generator.models import GenerationContext # Import your config model and other necessary components class MyTypePlugin(BasePlugin): def get_type_name(self) -> str: # This must match the 'type' key in the YAML config return 'my_type' def generate(self, module_key, raw_config, api_parser, ...) -> GenerationContext: # 1. Parse and validate raw_config using your Pydantic model. # 2. Use api_parser to get details about API operations. # 3. Build the argument_spec, documentation, examples, etc. # 4. Build the runner_context dictionary to pass runtime info to your runner. # 5. Return a fully populated GenerationContext object. return GenerationContext(...) -
Register the Plugin: Add the new plugin to the entry points section in
pyproject.toml:1 2 3 4 5 6
[tool.poetry.plugins."ansible_waldur_generator"] # ... existing plugins crud = "ansible_waldur_generator.plugins.crud.plugin:CrudPlugin" order = "ansible_waldur_generator.plugins.order.plugin:OrderPlugin" facts = "ansible_waldur_generator.plugins.facts.plugin:FactsPlugin" my_type = "ansible_waldur_generator.plugins.my_type.plugin:MyTypePlugin" # Add this line -
Update Poetry Environment: Run
poetry install. This makes the new entry point available to thePluginManager. Your newmy_typeis now ready to be used ingenerator_config.yaml.
After these steps, running poetry install will make the new facts type instantly available to the generator without any changes to the core generator.py or plugin_manager.py files.
How to Use the Generated Collection
Once generated, the collection can be used immediately for local testing or packaged for distribution. End-users who are not developing the generator can skip directly to the "Installing from Ansible Galaxy" section.
Method 1: Local Development and Testing
The most straightforward way to test is to tell Ansible where to find your newly generated collection by setting an environment variable.
-
Set the Collection Path: From the root of your project, run:
This command tells Ansible to look for collections inside the1export ANSIBLE_COLLECTIONS_PATH=./outputsoutputsdirectory. This setting lasts for your current terminal session. -
Run an Ad-Hoc Command: You can now test any module using its Fully Qualified Collection Name (FQCN). This is perfect for a quick check.
Command:
1 2 3 4 5 6 7
# Test the 'waldur.structure.project' module from the 'waldur.structure' collection ansible localhost -m waldur.structure.project \ -a "state=present \ name='My AdHoc Project' \ customer='Big Corp' \ api_url='https://api.example.com/api/' \ access_token='YOUR_SECRET_TOKEN'"Example Output (Success, resource created):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
localhost | CHANGED => { "changed": true, "commands": [ { "body": { "customer": "https://api.example.com/api/customers/...", "name": "My AdHoc Project" }, "description": "Create new project", "method": "POST", "url": "https://api.example.com/api/projects/" } ], "resource": { "created": "2024-03-21T12:00:00.000000Z", "customer": "https://api.example.com/api/customers/...", "customer_name": "Big Corp", "description": "", "name": "My AdHoc Project", "url": "https://api.example.com/api/projects/...", "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } }Example Output (Success, resource already existed):
1 2 3 4 5 6 7 8 9 10 11 12 13
localhost | SUCCESS => { "changed": false, "commands": [], "resource": { "created": "2024-03-21T12:00:00.000000Z", "customer": "https://api.example.com/api/customers/...", "customer_name": "Big Corp", "description": "", "name": "My AdHoc Project", "url": "https://api.example.com/api/projects/...", "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } }Security Warning: Passing
access_tokenon the command line is insecure. For production, use Ansible Vault or environment variables as shown in the playbook method. -
Use in a Playbook: This is the standard and recommended way to use the collection for automation.
test_playbook.yml:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
- name: Manage Waldur Resources with Generated Collection hosts: localhost connection: local gather_facts: false # Good practice to declare the collection you are using collections: - waldur.structure vars: waldur_api_url: "https://api.example.com/api/" waldur_access_token: "WALDUR_ACCESS_TOKEN" tasks: - name: Ensure 'My Playbook Project' exists # Use the FQCN of the module project: state: present name: "My Playbook Project" customer: "Big Corp" api_url: "{{ waldur_api_url }}" access_token: "{{ waldur_access_token }}" register: project_info - name: Show the created or found project details ansible.builtin.debug: var: project_info.resourceRun the playbook:
1 2 3 4 5 6
# Set the environment variables first export ANSIBLE_COLLECTIONS_PATH=./outputs export WALDUR_ACCESS_TOKEN='YOUR_SECRET_TOKEN' # Run the playbook ansible-playbook test_playbook.yml
Example Output (Success, resource created):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | |
Publishing and Installing
Publishing to Ansible Galaxy
The generated output is ready to be published, making your modules available to everyone.
-
Build the Collection Archive: Navigate to the root of the generated collection and run the build command. The output tarball will be placed in the parent directory.
This will create a file like1 2 3 4 5
# Navigate to the actual collection directory cd outputs/ansible_collections/waldur/structure/ # Build the collection, placing the output tarball in the `outputs` directory ansible-galaxy collection build --output-path ../../../..outputs/waldur-structure-1.0.0.tar.gz. -
Get a Galaxy API Key:
- Log in to galaxy.ansible.com.
- Navigate to
Namespacesand select your namespace. - Copy your API key from the "API Key" section.
-
Publish the Collection: Use the
ansible-galaxycommand to upload your built archive.1 2 3 4 5 6
# Set the token as an environment variable (note the correct variable name) export ANSIBLE_GALAXY_TOKEN="your_copied_api_key" # From the `outputs` directory, publish the tarball cd outputs/ ansible-galaxy collection publish waldur-structure-1.0.0.tar.gz
Installing from Ansible Galaxy (for End-Users)
Once the collection is published, any Ansible user can easily install and use it.
-
Install the Collection:
1ansible-galaxy collection install waldur.structure -
Use it in a Playbook: After installation, the modules are available globally. Users can simply write playbooks referencing the FQCN.
1 2 3 4 5 6 7 8 9 10
- name: Create a Waldur Project hosts: my_control_node tasks: - name: Ensure project exists waldur.structure.project: state: present name: "Production Project" customer: "Customer Name" api_url: "https://api.waldur.com/api/" access_token: "{{ my_waldur_token }}"
End-to-End Testing with VCR
This project uses a powerful "record and replay" testing strategy for its end-to-end (E2E) tests, powered by pytest and the VCR.py library. This allows us to create high-fidelity tests based on real API interactions while ensuring our CI/CD pipeline remains fast, reliable, and completely independent of a live API server.
The E2E tests are located in the tests/e2e/ directory.
Core Concept: Cassette-Based Testing
-
Recording Mode: The first time a test is run, it requires access to a live Waldur API. The test executes its workflow (e.g., creating a VM), and
VCR.pyrecords every single HTTP request and its corresponding response into a YAML file called a "cassette" (e.g.,tests/e2e/cassettes/test_create_instance.yaml). -
Replaying Mode: Once a cassette file exists, all subsequent runs of the same test will be completely offline.
VCR.pyintercepts any outgoing HTTP call, finds the matching request in the cassette, and "replays" the saved response. The test runs instantly without any network activity.
This approach gives us the best of both worlds: the realism of integration testing and the speed and reliability of unit testing.
Running the E2E Tests
The E2E tests are designed to be run in two distinct modes.
Mode 1: Replaying (Standard CI/CD and Local Testing)
This is the default mode. If the cassette files exist in tests/e2e/cassettes/, the tests will run offline. This is the fastest and most common way to run the tests.
1 2 | |
This command should complete in a few seconds.
Mode 2: Recording (When Adding or Modifying Tests)
You only need to enter recording mode when you are: * Creating a new E2E test. * Modifying an existing E2E test in a way that changes its API interactions (e.g., adding a new parameter to a module call).
Workflow for Recording a Test:
-
Prepare the Live Environment: Ensure you have a live Waldur instance and that all the necessary prerequisite resources for your test exist (e.g., for creating a VM, you need a project, offering, flavor, image, etc.).
-
Set Environment Variables: Provide the test runner with the credentials for the live API. Never hardcode these in the test files.
1 2
export WALDUR_API_URL="https://your-waldur-instance.com/api/" export WALDUR_ACCESS_TOKEN="<your_real_api_token>" -
Delete the Old Cassette: To ensure a clean recording, delete the corresponding YAML file for the test you are re-recording.
pytest-vcrnames cassettes based on the test file and function name.1 2
# Example for the instance creation test rm tests/e2e/cassettes/test_e2e_modules.py::TestInstanceModule::test_create_instance.yaml -
Run Pytest: Execute the test. It will now connect to the live API specified by your environment variables.
1 2
# Run a specific test to record its interactions poetry run pytest tests/e2e/test_e2e_modules.py::TestInstanceModule::test_create_instanceAfter the test passes, a new cassette file will be generated.
-
Review and Commit:
- CRITICAL: Inspect the newly generated
.yamlcassette file. - Verify that sensitive data, like the
Authorizationtoken, has been automatically scrubbed and replaced with a placeholder (e.g.,DUMMY_TOKEN). This is configured inpyproject.tomlorpytest.ini. - Commit the new or updated cassette file to your Git repository along with your test code changes.
- CRITICAL: Inspect the newly generated
Writing a New E2E Test
Follow the pattern established in tests/e2e/test_e2e_modules.py:
- Organize with Classes: Group tests for a specific module into a class (e.g.,
TestVolumeModule). - Use the
@pytest.mark.vcrDecorator: Add this decorator to your test class or individual test methods to enable VCR. - Use the
auth_paramsFixture: This fixture provides the standardapi_urlandaccess_tokenparameters, reading them from environment variables during recording and using placeholders during replay. - Use the
run_module_harness: This generic helper function handles the boilerplate of mockingAnsibleModuleand running the module'smain()function. - Write Your Test Logic:
- Arrange: Define the
user_paramsdictionary that simulates the Ansible playbook input. - Act: Call the
run_module_harness, passing it the imported module object and theuser_params. - Assert: Check the
exit_resultandfail_resultto verify that the module behaved as expected (e.g.,changedisTrue, the returnedresourcehas the correct data).
- Arrange: Define the
Example Skeleton:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
Waldur Release Lifecycle and API Stability Guarantees
Introduction to API Policies
Waldur's API lifecycle management balances innovation with stability through defined policies:
- Release Cadence:
- 2 major releases per year (every 6 months)
-
4 minor releases per year (every 3 months)
-
API Group Segmentation:
- APIs are grouped by functional domains (e.g.,
core,marketplace,openstack) -
Groups have independent maturity levels and versioning
-
API Maturity Management:
- Three maturity levels:
alpha,beta,stable -
Each level has specific stability guarantees and versioning rules
-
Change Classification:
- Backward-compatible (additive changes) and backward-incompatible (breaking changes)
-
API changes, database changes, configuration and deployment changes
-
Change Communication:
- For Waldur developers: via commit message and OpenAPI schema linter
- For release manager: breaking changes in stable APIs trigger policy validation
- For external developers: via OpenAPI schema, SDK documentation, code transformations and validation tools
- For external scripts: via OpenAPI schema validation and version validation in HTTP response
- For Waldur operators: via release impact assesment CLI tooling and Waldur dashboard
Waldur MasterMind lifecycle strategy enables:
- Rapid Innovation through alpha/beta channels
- Enterprise Stability through backported security patches
- Risk Mitigation with pre-upgrade analysis
- Seamless Upgrades using migration tooling
Release Cadence
Waldur MasterMind Release Timeline
gantt
dateFormat YYYY-MM-DD
axisFormat %b %Y
section Releases
Major 2025.1 : milestone, m1, 2025-01-01, 0d
Minor 2025.1.1 : milestone, m2, 2025-04-01, 0d
Minor 2025.1.2 : milestone, m3, 2025-07-01, 0d
Minor 2025.1.3 : milestone, m4, 2025-10-01, 0d
section Stable API v1
Active Support : active_stable1, 2025-01-01, 2025-07-01
Security Maintenance : maint_stable1, 2025-07-01, 2026-01-01
section Stable API v2
Active Support : active_stable2, 2025-07-01, 2026-01-01
section Beta API v1beta1
Active Support : active_beta1, 2025-01-01, 2025-04-01
Maintenance : maint_beta1, 2025-04-01, 2025-07-01
section Beta API v1beta2
Active Support : active_beta2, 2025-04-01, 2025-07-01
section Alpha API v1alpha1
Unsupported : alpha1, 2025-01-01, 2025-04-01
section Alpha API v1alpha2
Unsupported : alpha2, 2025-04-01, 2025-07-01
API Maturity Levels
| Maturity | Breaking Changes | Support Window | Version Format | Recommended Use |
|---|---|---|---|---|
| Alpha | Daily | None | 2025.2-dev.45 | Internal development only |
| Beta | Quarterly | 90 days | 2025.2-beta.3 | Preview environments |
| Stable | Bi-annually | 180 days | 2025.2.5 | General production |
Alpha Level
- Versioning:
XalphaY(e.g.,1alpha1) - Availability: In main repo, disabled by default (feature flag)
- Audience: Developers and expert users
- Completeness: Partial implementation expected
- Upgradeability: No upgrade path; breaking changes without notice
- Reliability: May destabilize deployments
- Support: No commitment to completion or long-term support
- Use Cases: Short-lived testing environments only
Beta Level
- Versioning:
XbetaY(e.g.,2beta3) - Availability: In releases, disabled by default (feature flag)
- Audience: Users providing feedback
- Completeness: Full implementation with API review
- Upgradeability: Breaking changes with documented migration path
- Reliability: Minor bugs possible, shouldn't break core functionality
- Support: Two concurrent versions supported for ≥1 minor release (3 months)
- Use Cases: Evaluation environments and limited production trials
Stable Level
- Versioning:
X(e.g.,v3) - Availability: Enabled by default in releases
- Audience: All users
- Completeness: Full implementation with integration tests
- Upgradeability: Only backward-compatible changes allowed
- Reliability: High stability guarantee
- Support: Maintained for ≥1 major release cycle (6 months) after deprecation
- Use Cases: All production environments
Types of API Changes
Backward-Incompatible Changes
- URL format changes
- Removing/renaming resources, parameters, properties, or methods
- Changing parameter/property types
- Modifying HTTP status codes
- Changing optional field to mandatory in REST API
- Adding required parameters
Backward-Compatible Changes
- Adding new resources
- Adding operations to existing resources
- Adding optional parameters
- Adding response fields
- Extending string formats
- Adding enum values
graph TD
A[Proposed API Change] --> B{Backward Compatible?}
B -->|Yes| C[Apply to current version]
B -->|No| D{Maturity Level}
D -->|Alpha| E[Increment alpha version<br>e.g. v1alpha1 → v1alpha2]
D -->|Beta| F[Increment beta version<br>e.g. v1beta1 → v1beta2<br>Support both for ≥3 months]
D -->|Stable| G[Create new major version<br>e.g. v1 → v2<br>Deprecate old version<br>Support for ≥6 months]
Change Communication
Change Communication Stages
flowchart LR
%% Merged Development & Pre-Release Phase
subgraph DevPre[Development & Pre-Release]
direction TB
DP1[Commit Messages]
DP2[OpenAPI Linter]
DP3[Policy Validation]
DP4[Breaking Change Review]
DP1 --> DP2 --> DP3 --> DP4
end
subgraph Release[Release Phase]
direction TB
R1[OpenAPI Schema]
R2[SDK Docs]
R3[Code Tools]
R1 --> R2 --> R3
end
subgraph Runtime[Runtime Phase]
direction TB
RT1[HTTP Headers]
RT2[Schema Validation]
RT1 --> RT2
end
subgraph Upgrade[Upgrade Phase]
direction TB
U1[Impact CLI]
U2[Dashboard]
U3[Dry-Run]
U1 --> U2 --> U3
end
%% Connections between phases
DevPre --> Release
Release --> Runtime
Runtime --> Upgrade
Change Communication Schedule
gantt
title Deprecation Schedule for API v2025.1
dateFormat YYYY-MM-DD
section Lifecycle
Active Development : active, 2025-01-01, 90d
Deprecation Notice : 2025-04-01, 90d
Compatibility Mode : 2025-07-01, 90d
End of Life : 2025-10-01, 1d
| Phase | Duration | Communication Channels |
|---|---|---|
| Announcement | 90 days | API headers, OpenAPI metadata, email notices, developer portal |
| Compatibility | 180 days | Support both versions, code transformation tools, migration guides |
| End of Life | Immediate | Remove deprecated endpoints |
Impact Preview & Reporting
graph LR
A[Upgrade Initiated] --> B[Version Comparison]
B --> C[Database Impact Scan]
B --> D[Config Change Analysis]
B --> E[API Compatibility Check]
C --> F[Migration Preview Report]
D --> G[Config Diff Report]
E --> H[Breaking Changes List]
F --> I[Consolidated Impact Report]
G --> I
H --> I
Impact Report Components
-
Database Impact:
-
Schema changes
- Data migration requirements
-
Estimated execution time
-
API Compatibility:
-
Breaking changes
- Required client updates
-
Deprecation timeline
-
Configuration Changes:
-
Modified settings
- New environment variables
- Security implications
Impact Report Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Stabilization Action Plan
Phase 1: Inventory & Classification
- Catalog all API endpoints by functional group
- Assign current maturity level (alpha/beta/stable)
- Identify breaking changes in last 2 releases
Phase 2: Stabilization Foundations
- Add header-based versioning (
Waldur-Version) - Introduce version match validation in SDK
- Introduce standardized error format
- OpenAPI schema validation in pull requests
- Breaking change detection gates
- Automated SDK documentation publishing
- Set up versioning automation for alpha/beta releases
Phase 3: Impact Analysis Tooling
- Database migration previews
- Configuration change detection
- API compatibility scanning
- Dry-run execution framework
- Risk score calculation
- Data loss probability assessment
- Downtime estimation
- Actionable remediation steps
- Automated customer alerts
- Personalized impact assessments
- Upgrade scheduling dashboard
Key Metrics for Success
- 100% breaking changes detected in CI
- Zero unannounced breaking changes in stable APIs
- 90%+ deprecated endpoints removed on schedule
- <30 days between beta and stable promotion
- 100% of new features launch behind feature flags
Example workflows
These examples demonstrate how to apply lifecycle and communication rules in practice.
Patching and Releasing an Older Supported Release
Context: Waldur 2025.1 is in Security Maintenance phase.
Scenario: A security bug is discovered in the marketplace app in version 2025.1.
Steps:
- Create a branch from the
release/2025.1tag. - Apply the patch fix (e.g., sanitize input in
marketplace.views.OfferingViewSet). - Bump patch version:
2025.1.4→2025.1.5. - Add changelog entry under
SECURITY FIXES. - Create new tag
release/2025.1.5, trigger CI/CD.
Communication:
- Email notification for operators
- Waldur HomePort dashboard warning for operators
Adding a New Endpoint in a Mature App (e.g., openstack, maturity: stable)
Scenario: Add a new endpoint to list all flavors with extended metadata.
Constraints:
- Must be backward-compatible
- Cannot break existing consumers
Steps:
- Create a new action or viewset method:
GET /openstacktenant-flavors/extended/. - Use
@extend_schemato document new response format in OpenAPI. - Add unit and integration tests.
- Add a changelog entry under
FEATURES. - Merge into
develop. - New version number will be minor: e.g.,
2025.2.3→2025.2.4.
Communication:
- Added to OpenAPI schema
- SDK is regenerated
- Endpoint is announced in changelog
Adding a New Endpoint in an Experimental App (e.g., checklist, maturity: alpha)
Scenario: Introduce a new endpoint for scoring checklist responses.
Steps:
- Create endpoint:
POST /checklist-items/{uuid}/score/. - No guarantee of stability — endpoint can be renamed/removed later.
- Version updated in
checklist.VERSION = 2025.2-alpha.7. - No changelog required, but internal commit message must follow pattern:
1 | |
Communication:
- Only available when feature flag enabled
- Not included in stable OpenAPI documentation
- Optional preview in dev dashboard
Reporting
Examples below show how it's possible to use Waldur SDK for generation of custom reports.
Running the scripts
All of the scripts below should be saved as files and executed in the environment with installed Waldur SDK. Please make sure that you have python3 and pip installed in your command line.
Make sure that you update WALDUR_HOST and TOKEN with values that match your target Waldur deployment.
1 2 | |
Project reporting
The first scenario is report generation about monthly costs of each project.
The name of the output file is project-report.csv.
Code example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | |
Example of output file content:
1 2 3 4 5 | |
OpenStack tenant reporting
The second scenario is report generation about quotas and monthly costs of OpenStack tenants.
The name of the output file is openstack-report.csv.
Code example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | |
Example of output file content:
1 2 3 4 5 | |
Reporting by provider
To get CSV summary of consumption by provider, the following script can be useful. Output will be a file per provider with a short summary of invoice items for the defined period.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | |
Waldur Python SDK
Waldur SDK is a thin Python wrapper for common REST operations.
It allows you to interact with the Waldur REST API directly from your Python code.
The SDK is provided as a Python module named waldur_api_client.
Installation
The Waldur SDK is available on PyPI and can be installed using either pip or poetry:
1 2 | |
In order to perform operations, a user needs to create an instance of AuthenticatedClient class:
1 2 3 4 5 6 | |
This instance provides interface for further interaction with Waldur and will be used across examples in related documentation.
Error handling
If the API call fails or returns an unexpected status code, it may raise UnexpectedStatus exception if the client is configured with raise_on_unexpected_status=True. This can be handled using a try...except block. The exception contains both the status code and the response content for debugging purposes.
Example:
1 2 3 4 5 6 7 8 9 10 | |
The UnexpectedStatus exception is raised when:
- The API returns a status code that is not documented in the OpenAPI specification
- The
raise_on_unexpected_statusclient setting is enabled (default is disabled)
Disabling TLS validation (not recommended!)
If you are running your commands against Waldur deployment with broken TLS certificates (e.g. in development), the trick below can be used to disable validation of certificates by SDK, beware that this is a security risk.
1 2 3 4 5 | |
Sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle.
1 2 3 4 5 | |
Air gapped installation
If your machine from where you run SDK is not connected to the public Internet, you can use the following method to transfer required libraries.
On the machine with access to the Internet:
1 2 3 | |
Now transfer content of the dependencies folder and requirements.txt to a machine without public Internet and run.
1 | |
Service Provider Onboarding
This page describes onboarding steps for a service provider via Waldur REST API.
Slurm Agent Integration
The following steps are specific for SLURM plugin in Waldur.
Creation of SLURM Offering in Waldur
This section describes creation of SLURM offering in Waldur, which is managed by Waldur Site Agent.
Example request
1 2 3 | |
Body:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
Example response
Status code: 201
Body:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | |
Setting up integration options of the SLURM Offering
For automated management of the offering-related accounts in Waldur, the service provider should update the integration options for the offering.
Example request
1 2 3 | |
Body:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Example response
Status code: 200
Body:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Activation of the SLURM Offering
After creation, the offering is in Draft state meaning the service provider can edit it, but it is hidden from Wadlur marketplace.
In order to publish it, the service provider should activate the offering the way described below.
Example request
1 2 3 | |
Note: This endpoint doesn't require any body.
After sending this request, the offering becomes activated, its state switched to Active
and users of the marketplace can order resources.
Example response
Status code: 201
Body: empty
Creation of a service account user
For further management of the offering, Waldur Site Agent need a service account with access to the offering. This section describes how to create such a user.
Example request
1 2 3 | |
Body:
1 2 3 4 5 6 7 8 9 10 | |
Example response
Status: 201
Body:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
Assigning service provider permissions to the user
After user creation, you need to grant them permissions for offering management.
Waldur uses OFFERING.MANAGER role for this.
Example request
1 2 3 | |
Body:
1 2 3 4 | |
Example response
Status code: 201
Body: empty
Service Account Token Retrieval
As a staff user, you can fetch any other user's token. For this, use token endpoint on a selected user.
Example request
1 2 | |
Example response
Status code: 200
Body:
1 2 3 4 5 6 7 8 9 | |
Service Account Token Refresh
As a staff user, you can also manually refresh any other user's token.
For this, use refresh_token endpoint on a selected user.
Example request
1 2 3 | |
Body: not required
Example response
Status code: 201
Body:
1 2 3 4 5 6 7 8 9 | |
APIs ↵
REST API
Authentication
Waldur uses token-based authentication for REST.
In order to authenticate your requests first obtain token from any of
the supported token backends. Then use the token in all the subsequent
requests putting it into Authorization header:
1 2 3 4 | |
Also token can be put as request GET parameter, with key x-auth-token:
1 2 3 | |
API version
In order to retrieve current version of the Waldur authenticated user should send a GET request to /api/version/.
Valid request example (token is user specific):
1 2 3 4 5 | |
Valid response example:
1 2 3 4 5 6 7 8 | |
Pagination
Every Waldur REST request supports pagination. Links to the next, previous, first and last pages are included in the Link header. X-Result-Count contains a count of all entries in the response set.
By default page size is set to 10. Page size can be modified by passing ?page_size=N query parameter. The maximum page size is 100.
Example of the header output for user listing:
1 2 3 4 5 6 7 8 9 10 | |
Common operations
If you are integrating a python-based application, you might find useful a python wrapper for typical operations.
Almost all operations require authentication. Authentication process is a two-step:
- Generation of authentication token using Authentication API.
- Passing that token in the Authorization header along with all other REST API calls.
Please note that all of the responses to the listing are paginated, by default up to 10 elements are returned.
You can request more by passing page_size=<number> argument, number up to 200 will be respected. Information
about the whole set is contained in the response headers. Check example of a "get_all" function
to see how a full traversal can be done.
Project management
Customer lookup
Waldur implements a multi-tenant model to allow different organizations to allocate shared resources simultaneously and independently from each other. Each such organizaton is a customer of Waldur and is able to create its own projects. Project allows us to create new allocations as well as connect users with the project.
Hence, to create a project, one needs first to have a reference to the customer. The reference is a stable one and can be cached by a REST API client.
Examples:
Project creation
In order to create a new project in an organization, user needs to provide the following fields:
customer- URL of the project's organizationname- project's namedescription- description of a project descriptionend_date- optional date when the project and all allocations it contains will be scheduled for termination.backend_id- optional identifier, which is intended to be unique in the resource allocator's project list. Can be used for connecting Waldur projects with the client's project registry.oecd_fos_2007_code- optional OECD Field of Science code. A code is represented by a string with two numbers separated by dot for a corresponding field of science. For example"1.1"is code for Mathematics. More information can be found here.
Please note that the project becomes active at the moment of creation!
Examples:
Project update
It is possible to update an existing project using its URL link. Name, description and backend_id can be updated.
Examples:
Project lookup
User can list projects and filter them using the following query parameters:
name- project's name (uses 'contains' logic for lookup)name_exact- project's exact namedescription- project's description (uses 'contains' logic for lookup)backend_id- project's exact backend ID
In case API user has access to more than one customer, extra filter by customer properties can be added:
customer- exact filter by customer UUIDcustomer_name- filter by partial match of the full name of a customerabbreviation- filter by partial match of the abbreviation of a customer
Examples:
Project membership management
Creating a membership for a user means creating a permission link. While multiple roles of a user per project are allowed, we recommed for clarity to have one active project role per user in a project.
The list of fields for creation are:
user- a user's UUID, looked up from a previous step.role- a role of the user. Both role UUID and name are supported. By default the system roles 'PROJECT.MEMBER', 'PROJECT.ADMIN' and 'PROJECT.MANAGER' are supported. TODO: add reference to Puhuri terminology.expiration_time- an optional field, if provided, it should contain date or ISO 8601 datetime.
To remove the permission, REST API client needs to send a HTTP request using the same payload as for permission creation,
but to delete_user endpoint .
It is also possible to list available project permissions along with a role filter.
Examples:
- API call for allocating members to a project
- API call for removing members from a project
- API call to listing project permissions
Resource allocation management
Creating and managing resource allocations in Waldur follows ordering logic.
All operations on resources, which lead to changes in allocations - e.g. creation, modification of allocated limits or termination - are wrapped in an order.
Listing offerings
To create a new Allocation, one must first choose a specific Offering from available. Offering corresponds to a specific part of a shared resource that Resource Allocator can allocate. Offerings can be visible to multiple allocators, however in the first iteration we plan to limit allocators with access to only their owned shares.
User can fetch offerings and filter them by the following fields:
name- offering's namename_exact- offering's exact namecustomer- organization's URLcustomer_uuid- organization's UUID
Generally Offering has a stable UUID, which can be used in Waldur client configuration. Offering defines inputs that are required to provision an instance of the offering, available accounting plans (at least one should be present) as well as attributes that can or should be provided with each request.
Each Offering contains one or more plans, you will need to provide a reference (URL) to the plan when creating an allocation.
API examples:
Orders and resources
To create a new allocation, an order must be created with requested attributes: project as well as details about the allocations.
Order might require additional approvals - in this case upon creation its status will be pending-consumer or pending-provider, which
can transition to REJECTED if order is rejected.
Otherwise it will be switched to EXECUTING, ending either in DONE if all is good or ERRED, if error happens during the processing.
Resource UUID is available as a marketplace_resource_uuid field of the creation order.
In addition, accepting_terms_of_service flag must be provided as a lightweight confirmation that allocator is
aware and agreeing with Terms of services of a specific Offering.
Example of the order payload sent with POST to https://puhuri-core-beta.neic.no/api/marketplace-orders/:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Change resource limits
Send POST request to https://puhuri-core-beta.neic.no/api/marketplace-resources/<UUID_OF_A_RESOURCE>/update_limits/ providing
the new values of limits, for example:
1 2 3 4 5 6 7 | |
Resource termination
Send POST request to https://puhuri-core-beta.neic.no/api/marketplace-resources/<UUID_OF_A_RESOURCE>/terminate/.
API examples:
- Creation of a resource allocation
- Modification of a resource allocation
- Termination of a resource allocation
Example integrations:
- Lookup of available offerings in Waldur.
- Creation of a resource in Waldur.
- Changing allocated limits in Waldur.
- Deletion of a resource allocation in Waldur.
Reporting
Getting usage data of a specific resource allocation
To get reported usage for resources, send GET request to https://puhuri-core-beta.neic.no/api/marketplace-component-usages/. If you want to get usage data of a specific resource, please add a filter, e.g. https://puhuri-core-beta.neic.no/api/marketplace-component-usages/?resource_uuid=<UUID_OF_A_RESOURCE>. Note that responses are paginated.
Additional filters that can be used:
date_before- date of the returned usage records should be before or equal to provided, format YYYY-MM-DD, e.g. 2021-03-01.date_after- date of the returned usage records should be later or equal to provided, format YYYY-MM-DD, e.g. 2021-03-01.offering_uuid- return usage records only for a specified offering.type- type of the usage record to return, e.g. 'cpu_k_hours'.
Response will contain a list of usage records with a separate record for each component per month, for example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | |
Authentication
Outline:
Waldur MasterMind exposes REST API for all of its operations. Below are examples of typical operations performed against APIs. To run the examples, we are using a HTTPie.
Almost all of the operations with API require an authentication token. Below we list two methods on how to get it.
Authentication with username and password
If your account is allowed to use username/password and the method is enabled (e.g. in dev environment), you can get a new token by submitting a username/password as JSON to a specific endpoint.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
Authentication Token management
The easiest way to obtain your token is via Waldur HomePort.
Open your user dashboard by clicking on your name in the upper left corner, then select Credentials -> API token.
A page with your API token will open. Click on the eye icon to reveal the token.
Permissions
Listing permissions
Entities of Waldur are grouped into organisational units. The following organisational units are supported: customer and project.
Each organisational unit has a list of users associated with it. Getting a list of users connected to a certain organisational unit is done through running a GET request against a corresponding endpoint.
- customer: endpoint
/api/customer-permissions/ - project: endpoint
/api/project-permissions/
Filtering by organisational unit UUID or URL is supported. Depending on the type, filter field is one of:
?customer=<UUID>?customer_url=<URL>?project=<UUID>?project_url=<URL>?user_url=<URL>
In addition, filtering by field names is supported. In all cases filtering is based on case insensitive partial matching.
?username=<username>?full_name=<full name>?native_name=<native name>
Ordering can be done by setting an ordering field with
?o=<field_name>. For descending ordering prefix field name with a
dash (-). Supported field names are:
?o=user__username?o=user__full_name?o=user__native_name
Fetch user data from Waldur using username
To fetch user data together with its permissions, you need to perform the following HTTP request.
It requires username filter and valid API token.
1 2 3 4 | |
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | |
Project API examples
Lookup allocator customers available to a user
In most cases integration user can see only one allocating organization, however it is possible that the same account is used for allocating different shares, e.g. national share and community specific. Projects are always created in the context of a specific customer, so as a first thing you need to lookup a specific customer you want to use. Customer is a stable entity, so it's URL / UUID can be cached.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
Create a new project
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | |
Update an existing project
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | |
List projects
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | |
Project members permissions allocation
User creates a role for a user in a project.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | |
List project permissions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | |
Removal of members from a project
User can remove the permissions calling DELETE verb on permission's URL.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
Getting a list of offerings
User can fetch offerings and filter them by the following fields:
name- offering's namename_exact- offering's exact namecustomer- organization's URLcustomer_uuid- organization's UUIDallowed_customer_uuid- allowed organization's UUIDservice_manager_uuid- service manager's UUIDattributes- a set of attributes (key-value pairs) identifying the allocation.state- offering's state (Active,Draft,Paused,Archived), should beActivecategory_uuid- category's UUIDbillable- signalizing if an offering is billable or not, should betrueshared- signalizing if an offering is public or not, should betruetype- offering's type
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | |
Creation of a resource allocation
User can create an order providing requested allocation parameters.
project- project's UUIDoffering- respectful offering's URLattributes- specific attributes for the offeringplan- plan's URL (if offering is billable)limits- a set of resource limits for an allocation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | |
If a token belongs to a staff user, the order can be approved automatically. Otherwise, there is additional need for manual approval.
After that, order should be pulled until resource UUID is present (marketplace_resource_uuid field).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | |
Order approval and rejection
In order to approve order by consumer, you shall issue POST request against /api/marketplace-orders/{UUID}/approve_by_consumer/ endpoint. Similarly in order to approve order by provider, you shall issue POST request against /api/marketplace-orders/{UUID}/approve_by_provider/ endpoint. Otherwise, you shall issue POST request against /api/marketplace-orders/{UUID}/reject_by_consumer/ or /api/marketplace-orders/{UUID}/reject_by_provider/ endpoint.
Of course, these endpoints are available only if you have service provider or service consumer permission against corresponding offerings.
Modification of a resource allocation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | |
Modification of resource allocation options
As an RA, you can update options of an allocations. Update happens through a special endpoint on a resource.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | |
Termination of a resource allocation
Termination uses a special short-cut action /terminate and returns UUID of a generated order.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
Waldur SDK Documentation
This document provides information about official Waldur SDK libraries available in multiple programming languages. All SDK clients are automatically generated from OpenAPI schema, ensuring consistency across different implementations.
Available SDKs
Python SDK
- Repository: waldur/py-client
- Auto-generated Python client for Waldur REST API
- Installation:
1 | |
TypeScript/JavaScript SDK
- Repository: waldur/js-client
- Auto-generated TypeScript/JavaScript client for Waldur REST API
- Installation:
1 | |
Go SDK
- Repository: waldur/go-client
- Auto-generated Go client for Waldur REST API
- Installation:
1 | |
Features
- Auto-generated from OpenAPI specification
- Type-safe API interfaces
- Comprehensive API coverage
- Regular updates following Waldur API changes
API Changes ↵
OpenAPI schema diff - 7.4.8
For version 7.4.8
New Endpoints: 5
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
Deleted Endpoints: None
Modified Endpoints: 429
POST /api-auth/password/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api-auth/saml2/login/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api-auth/saml2/login/complete/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api-auth/saml2/logout/complete/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/access-subnets/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/access-subnets/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/access-subnets/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/admin-announcements/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/admin-announcements/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/admin-announcements/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/auth-valimo/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/auth-valimo/result/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/aws-instances/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/aws-instances/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/aws-instances/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/aws-instances/{uuid}/resize/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/aws-volumes/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/aws-volumes/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/aws-volumes/{uuid}/attach/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/azure-public-ips/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/azure-public-ips/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/azure-public-ips/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/azure-sql-databases/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/azure-sql-databases/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/azure-sql-databases/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/azure-sql-servers/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/azure-sql-servers/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/azure-sql-servers/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/azure-sql-servers/{uuid}/create_database/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/azure-virtualmachines/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/azure-virtualmachines/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/azure-virtualmachines/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/booking-offerings/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [scope_error_message]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
GET /api/booking-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [scope_error_message]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
POST /api/broadcast-message-templates/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/broadcast-message-templates/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/broadcast-message-templates/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/broadcast-messages/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/broadcast-messages/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/broadcast-messages/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/call-managing-organisations/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/call-managing-organisations/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/call-managing-organisations/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/call-managing-organisations/{uuid}/add_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/call-managing-organisations/{uuid}/delete_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/call-managing-organisations/{uuid}/update_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/component-user-usage-limits/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/component-user-usage-limits/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/component-user-usage-limits/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/customer-credits/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/customer-credits/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/customer-credits/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/customer-credits/{uuid}/apply_compensations/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/customer-credits/{uuid}/clear_compensations/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/customers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: call_managing_organization_uuid
- Nullable changed from false to true
- Modified property: service_provider
- Nullable changed from false to true
- Modified property: service_provider_uuid
- Nullable changed from false to true
POST /api/customers/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: call_managing_organization_uuid
- Nullable changed from false to true
- Modified property: service_provider
- Nullable changed from false to true
- Modified property: service_provider_uuid
- Nullable changed from false to true
POST /api/customers/{customer_uuid}/marketplace-checklists/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: call_managing_organization_uuid
- Nullable changed from false to true
- Modified property: service_provider
- Nullable changed from false to true
- Modified property: service_provider_uuid
- Nullable changed from false to true
PATCH /api/customers/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: call_managing_organization_uuid
- Nullable changed from false to true
- Modified property: service_provider
- Nullable changed from false to true
- Modified property: service_provider_uuid
- Nullable changed from false to true
PUT /api/customers/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: call_managing_organization_uuid
- Nullable changed from false to true
- Modified property: service_provider
- Nullable changed from false to true
- Modified property: service_provider_uuid
- Nullable changed from false to true
POST /api/customers/{uuid}/add_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/customers/{uuid}/delete_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/customers/{uuid}/stats/
- New query param: for_current_month
POST /api/customers/{uuid}/update_organization_groups/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/customers/{uuid}/update_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/digitalocean-droplets/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/digitalocean-droplets/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/digitalocean-droplets/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/digitalocean-droplets/{uuid}/resize/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/event-subscriptions/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/feature-values/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/freeipa-profiles/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/freeipa-profiles/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/hooks-email/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
POST /api/hooks-email/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
GET /api/hooks-email/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
PATCH /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
PUT /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
GET /api/hooks-web/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
POST /api/hooks-web/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
GET /api/hooks-web/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
PATCH /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
PUT /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [resource_robot_account_state_changed]
POST /api/identity-providers/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/identity-providers/{provider}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/identity-providers/{provider}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/invoice-items/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/invoice-items/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/invoice-items/{uuid}/create_compensation/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/invoice-items/{uuid}/migrate_to/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/invoice/send-financial-report-by-mail/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/invoices/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [compensations incurred_costs]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: compensations
- New property: incurred_costs
GET /api/invoices/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [compensations incurred_costs]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compensations
- New property: incurred_costs
POST /api/invoices/{uuid}/paid/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compensations
- New property: incurred_costs
POST /api/invoices/{uuid}/set_backend_id/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/invoices/{uuid}/set_payment_url/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/invoices/{uuid}/set_reference_number/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/keys/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/lexis-links/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/lexis-links/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/lexis-links/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-categories/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-categories/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-categories/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-category-columns/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-category-columns/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-category-columns/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-category-components/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-category-components/{id}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-category-components/{id}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-category-groups/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-category-groups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-category-groups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-category-help-articles/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-category-help-articles/{id}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-category-help-articles/{id}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-checklists/{checklist_uuid}/answers/submit/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-component-usages/set_usage/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-component-usages/{uuid}/set_user_usage/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-customer-estimated-cost-policies/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-customer-estimated-cost-policies/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-customer-estimated-cost-policies/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-offering-estimated-cost-policies/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-offering-estimated-cost-policies/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-offering-estimated-cost-policies/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-offering-files/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-offering-usage-policies/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-offering-usage-policies/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-offering-usage-policies/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-offering-user-roles/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-offering-user-roles/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-offering-user-roles/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-offering-users/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-offering-users/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-offering-users/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-offering-users/{uuid}/update_restricted/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-orders/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
POST /api/marketplace-orders/{uuid}/set_state_erred/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-plans/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-plans/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-plans/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-plans/{uuid}/update_organization_groups/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-plans/{uuid}/update_prices/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-plans/{uuid}/update_quotas/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-project-estimated-cost-policies/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-project-estimated-cost-policies/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-project-estimated-cost-policies/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-project-update-requests/{uuid}/approve/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-project-update-requests/{uuid}/reject/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/marketplace-provider-offerings/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [scope_error_message]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: integration_status
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
POST /api/marketplace-provider-offerings/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: scope_error_message
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
GET /api/marketplace-provider-offerings/groups/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [scope_error_message]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: integration_status
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
GET /api/marketplace-provider-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [scope_error_message]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: integration_status
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
POST /api/marketplace-provider-offerings/{uuid}/add_endpoint/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/add_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/create_offering_component/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/delete_endpoint/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/delete_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/pause/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: integration_status
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
POST /api/marketplace-provider-offerings/{uuid}/remove_offering_component/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/set_backend_metadata/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [scope_error_message]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: integration_status
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
POST /api/marketplace-provider-offerings/{uuid}/update_attributes/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/update_description/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: integration_status
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: secret_options
- Properties changed
- New property: rancher_offering_uuid
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: secret_options
- Properties changed
- New property: rancher_offering_uuid
POST /api/marketplace-provider-offerings/{uuid}/update_location/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/update_offering_component/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/update_options/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/update_organization_groups/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: integration_status
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
POST /api/marketplace-provider-offerings/{uuid}/update_overview/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/update_resource_options/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-offerings/{uuid}/update_thumbnail/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: integration_status
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
POST /api/marketplace-provider-offerings/{uuid}/update_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [scope_error_message]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: integration_status
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
PATCH /api/marketplace-provider-resources/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-provider-resources/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
POST /api/marketplace-provider-resources/{uuid}/refresh_last_sync/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/set_as_erred/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/set_as_ok/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/set_backend_id/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/set_backend_metadata/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_staff/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/set_limits/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/set_slug/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/submit_report/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-provider-resources/{uuid}/terminate/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-public-api/check_signature/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-public-api/set_usage/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/marketplace-public-offerings/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [scope_error_message]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
GET /api/marketplace-public-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [scope_error_message]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
POST /api/marketplace-remote-synchronisations/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-remote-synchronisations/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-remote-synchronisations/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-resource-users/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-resources/suggest_name/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-resources/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-resources/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
POST /api/marketplace-resources/{uuid}/set_end_date_by_staff/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-resources/{uuid}/set_slug/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-resources/{uuid}/switch_plan/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-resources/{uuid}/terminate/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-resources/{uuid}/update_limits/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-resources/{uuid}/update_options/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/marketplace-robot-accounts/
- New query param: state
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: error_message
- New required property: error_traceback
- New required property: state
- Properties changed
- New property: error_message
- New property: error_traceback
- New property: state
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
POST /api/marketplace-robot-accounts/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: error_message
- New required property: error_traceback
- New required property: state
- Properties changed
- New property: error_message
- New property: error_traceback
- New property: state
GET /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: error_message
- New required property: error_traceback
- New required property: state
- Properties changed
- New property: error_message
- New property: error_traceback
- New property: state
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
PATCH /api/marketplace-robot-accounts/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: error_message
- New required property: error_traceback
- New required property: state
- Properties changed
- New property: error_message
- New property: error_traceback
- New property: state
PUT /api/marketplace-robot-accounts/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: error_message
- New required property: error_traceback
- New required property: state
- Properties changed
- New property: error_message
- New property: error_traceback
- New property: state
POST /api/marketplace-screenshots/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-screenshots/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-screenshots/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
POST /api/marketplace-script-dry-run/{uuid}/run/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: scope_error_message
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: google_calendar_is_public
- Nullable changed from false to true
- Modified property: parent_description
- Nullable changed from false to true
- Modified property: parent_name
- Nullable changed from false to true
- Modified property: parent_uuid
- Nullable changed from false to true
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: openstack_offering_uuid_list
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
POST /api/marketplace-script-sync-resource/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-sections/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/marketplace-sections/{key}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-sections/{key}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-service-providers/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: rancher_offering_uuid
PATCH /api/marketplace-service-providers/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/marketplace-service-providers/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-service-providers/{uuid}/add_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-service-providers/{uuid}/delete_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-service-providers/{uuid}/set_offerings_username/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/marketplace-service-providers/{uuid}/update_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/notification-messages-templates/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/notification-messages-templates/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/notification-messages-templates/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/notification-messages-templates/{uuid}/override/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/notification-messages/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/notification-messages/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/notification-messages/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/openstack-backups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/openstack-backups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-backups/{uuid}/restore/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: volumes
- Items changed
- Properties changed
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-floating-ips/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: instance_name
- Nullable changed from false to true
- Modified property: instance_url
- Nullable changed from false to true
- Modified property: instance_uuid
- Nullable changed from false to true
GET /api/openstack-floating-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_name
- Nullable changed from false to true
- Modified property: instance_url
- Nullable changed from false to true
- Modified property: instance_uuid
- Nullable changed from false to true
POST /api/openstack-floating-ips/{uuid}/attach_to_port/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-floating-ips/{uuid}/update_description/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/openstack-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: volumes
- Items changed
- Properties changed
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: volumes
- Items changed
- Properties changed
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/openstack-instances/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: volumes
- Items changed
- Properties changed
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/openstack-instances/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: volumes
- Items changed
- Properties changed
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-instances/{uuid}/backup/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-instances/{uuid}/change_flavor/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-instances/{uuid}/update_allowed_address_pairs/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-instances/{uuid}/update_floating_ips/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-instances/{uuid}/update_ports/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-instances/{uuid}/update_security_groups/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-migrations/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/openstack-migrations/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/openstack-migrations/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/openstack-networks/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/openstack-networks/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-networks/{uuid}/create_port/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-networks/{uuid}/create_subnet/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-networks/{uuid}/set_mtu/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-routers/{uuid}/set_routes/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/openstack-security-groups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/openstack-security-groups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-security-groups/{uuid}/set_rules/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-server-groups/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/openstack-server-groups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/openstack-server-groups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/openstack-snapshots/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/openstack-snapshots/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-snapshots/{uuid}/restore/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/openstack-subnets/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/openstack-subnets/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-tenants/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/openstack-tenants/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/openstack-tenants/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-tenants/{uuid}/change_password/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-tenants/{uuid}/create_floating_ip/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_name
- Nullable changed from false to true
- Modified property: instance_url
- Nullable changed from false to true
- Modified property: instance_uuid
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/create_network/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-tenants/{uuid}/create_security_group/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-tenants/{uuid}/create_server_group/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-tenants/{uuid}/set_quotas/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/openstack-volumes/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/openstack-volumes/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-volumes/{uuid}/attach/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-volumes/{uuid}/extend/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-volumes/{uuid}/retype/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/openstack-volumes/{uuid}/snapshot/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/organization-groups/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/organization-groups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/organization-groups/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/override-settings/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/payment-profiles/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/payment-profiles/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/payment-profiles/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/payments/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/payments/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/payments/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/payments/{uuid}/link_to_invoice/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/project-credits/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/project-credits/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/project-credits/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/projects/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/projects/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/projects/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/projects/{uuid}/add_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/projects/{uuid}/delete_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/projects/{uuid}/move_project/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
GET /api/projects/{uuid}/stats/
- Description changed from '' to 'Return statistics about project resources usage'
- New query param: for_current_month
POST /api/projects/{uuid}/update_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/promotions-campaigns/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/promotions-campaigns/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-proposals/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-proposals/{uuid}/add_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-proposals/{uuid}/approve/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-proposals/{uuid}/attach_document/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-proposals/{uuid}/delete_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-proposals/{uuid}/reject/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-proposals/{uuid}/resources/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-proposals/{uuid}/update_project_details/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-proposals/{uuid}/update_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-protected-calls/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-protected-calls/{uuid}/add_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-protected-calls/{uuid}/attach_documents/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-protected-calls/{uuid}/delete_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-protected-calls/{uuid}/detach_documents/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-protected-calls/{uuid}/offerings/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-protected-calls/{uuid}/rounds/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-protected-calls/{uuid}/update_user/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-reviews/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/proposal-reviews/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/proposal-reviews/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/proposal-reviews/{uuid}/submit/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/query/
- Description changed from '' to 'Execute SQL query against readonly database'
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
- Responses changed
- New response: 400
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Type changed from 'object' to 'array'
- Items changed
- Schema added
- Required changed
- Deleted required property: query
- Properties changed
- Deleted property: query
POST /api/rancher-apps/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/rancher-apps/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-apps/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-catalogs/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/rancher-catalogs/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-catalogs/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-catalogs/{uuid}/refresh/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-clusters/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/rancher-clusters/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-clusters/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-clusters/{uuid}/create_management_security_group/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-clusters/{uuid}/import_yaml/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-hpas/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/rancher-hpas/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-hpas/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-hpas/{uuid}/yaml/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-ingresses/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/rancher-ingresses/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-ingresses/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-ingresses/{uuid}/yaml/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-nodes/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-nodes/{uuid}/link_openstack/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-services/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/rancher-services/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-services/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-services/{uuid}/yaml/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/rancher-workloads/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/rancher-workloads/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-workloads/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/rancher-workloads/{uuid}/yaml/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/remote-eduteams/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/remote-waldur-api/import_offering/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/remote-waldur-api/remote_categories/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/remote-waldur-api/remote_customers/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/remote-waldur-api/shared_offerings/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/roles/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/roles/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/roles/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/roles/{uuid}/update_descriptions/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/slurm-allocations/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/slurm-allocations/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/slurm-allocations/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/slurm-allocations/{uuid}/set_limits/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/slurm-jobs/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/slurm-jobs/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/slurm-jobs/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-attachments/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/support-comments/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/support-comments/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-feedbacks/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-issues/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/support-issues/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/support-issues/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-issues/{uuid}/comment/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-issues/{uuid}/sync/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-jira-webhook/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-smax-webhook/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-templates/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/support-templates/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/support-templates/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-templates/{uuid}/create_attachments/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/support-templates/{uuid}/delete_attachments/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/user-agreements/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/user-agreements/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/user-agreements/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/user-group-invitations/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/user-invitations/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/user-invitations/approve/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/user-invitations/reject/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/user-permission-requests/{uuid}/approve/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/user-permission-requests/{uuid}/reject/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/users/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/users/confirm_email/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/users/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/users/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/users/{uuid}/change_email/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/users/{uuid}/change_password/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/vmware-disks/{uuid}/extend/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/vmware-virtual-machine/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PATCH /api/vmware-virtual-machine/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
PUT /api/vmware-virtual-machine/{uuid}/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/vmware-virtual-machine/{uuid}/create_disk/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
POST /api/vmware-virtual-machine/{uuid}/create_port/
- Request body changed
- Content changed
- Deleted media type: application/x-www-form-urlencoded
- Deleted media type: multipart/form-data
OpenAPI schema diff - 7.4.9
For version 7.4.9
New Endpoints: 12
GET /api/keycloak-groups/
GET /api/keycloak-groups/{uuid}/
GET /api/keycloak-user-group-memberships/
POST /api/keycloak-user-group-memberships/
DELETE /api/keycloak-user-group-memberships/{uuid}/
GET /api/keycloak-user-group-memberships/{uuid}/
PATCH /api/keycloak-user-group-memberships/{uuid}/
PUT /api/keycloak-user-group-memberships/{uuid}/
POST /api/openstack-networks/{uuid}/rbac_policy_create/
DELETE /api/openstack-networks/{uuid}/rbac_policy_delete/{rbac_policy_uuid}/
GET /api/rancher-role-templates/
GET /api/rancher-role-templates/{uuid}/
Deleted Endpoints: 10
GET /api/icons/favicon/
GET /api/icons/hero_image/
GET /api/icons/keycloak_icon/
GET /api/icons/login_logo/
GET /api/icons/offering_logo_placeholder/
GET /api/icons/powered_by_logo/
GET /api/icons/sidebar_logo/
GET /api/icons/sidebar_logo_dark/
GET /api/icons/sidebar_logo_mobile/
GET /api/icons/site_logo/
Modified Endpoints: 141
GET /api/aws-instances/
- New query param: can_manage
GET /api/azure-public-ips/
- New query param: can_manage
GET /api/azure-sql-databases/
- New query param: can_manage
GET /api/azure-sql-servers/
- New query param: can_manage
GET /api/azure-virtualmachines/
- New query param: can_manage
GET /api/booking-offerings/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [state_code]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
GET /api/booking-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [state_code]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
GET /api/booking-resources/
- New query param: offering_shared
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/booking-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
POST /api/call-managing-organisations/{uuid}/add_user/
- Responses changed
- New response: 201
- Deleted response: 200
POST /api/call-managing-organisations/{uuid}/update_user/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
GET /api/customers/
- New query param: owned_by_current_user
GET /api/customers/countries/
- New query param: owned_by_current_user
POST /api/customers/{uuid}/add_user/
- Responses changed
- New response: 201
- Deleted response: 200
POST /api/customers/{uuid}/update_user/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
GET /api/digitalocean-droplets/
- New query param: can_manage
GET /api/financial-reports/
- New query param: owned_by_current_user
GET /api/marketplace-orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
POST /api/marketplace-orders/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-orders/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
GET /api/marketplace-provider-offerings/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [state_code]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
POST /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state_code
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
GET /api/marketplace-provider-offerings/groups/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [state_code]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
GET /api/marketplace-provider-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [state_code]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
POST /api/marketplace-provider-offerings/{uuid}/add_endpoint/
- Responses changed
- New response: 201
- Deleted response: 200
POST /api/marketplace-provider-offerings/{uuid}/add_user/
- Responses changed
- New response: 201
- Deleted response: 200
POST /api/marketplace-provider-offerings/{uuid}/delete_thumbnail/
- Responses changed
- New response: 204
- Deleted response: 200
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-provider-offerings/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-provider-offerings/{uuid}/orders/{order_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [state_code]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
POST /api/marketplace-provider-offerings/{uuid}/update_description/
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- MinLength changed from 0 to 1
- Modified property: secret_options
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
- MinLength changed from 0 to 1
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-offerings/{uuid}/update_location/
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-offerings/{uuid}/update_options/
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-offerings/{uuid}/update_organization_groups/
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-offerings/{uuid}/update_overview/
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-offerings/{uuid}/update_resource_options/
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-offerings/{uuid}/update_thumbnail/
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-offerings/{uuid}/update_user/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [state_code]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
GET /api/marketplace-provider-resources/
- New query param: offering_shared
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-provider-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-provider-resources/{uuid}/details/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
POST /api/marketplace-provider-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
POST /api/marketplace-provider-resources/{uuid}/refresh_last_sync/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
POST /api/marketplace-provider-resources/{uuid}/set_as_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
POST /api/marketplace-provider-resources/{uuid}/terminate/
- Description changed from '' to 'Create marketplace order for resource termination.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: order_uuid
- Properties changed
- New property: order_uuid
- Deleted property: attributes
GET /api/marketplace-public-offerings/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [state_code]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
GET /api/marketplace-public-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [state_code]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
GET /api/marketplace-resources/
- New query param: offering_shared
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-resources/{uuid}/details/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
POST /api/marketplace-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
POST /api/marketplace-resources/{uuid}/switch_plan/
- Description changed from '' to 'Create marketplace order for resource plan switch.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: order_uuid
- Deleted required property: plan
- Properties changed
- New property: order_uuid
- Deleted property: plan
POST /api/marketplace-resources/{uuid}/terminate/
- Description changed from '' to 'Create marketplace order for resource termination.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: order_uuid
- Properties changed
- New property: order_uuid
- Deleted property: attributes
POST /api/marketplace-resources/{uuid}/update_limits/
- Description changed from '' to 'Create marketplace order for resource limits update.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: order_uuid
- Deleted required property: limits
- Properties changed
- New property: order_uuid
- Deleted property: limits
GET /api/marketplace-robot-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: responsible_user
- Nullable changed from false to true
GET /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: responsible_user
- Nullable changed from false to true
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: responsible_user
- Nullable changed from false to true
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: responsible_user
- Nullable changed from false to true
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: responsible_user
- Nullable changed from false to true
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: responsible_user
- Nullable changed from false to true
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
- Modified property: responsible_user
- Nullable changed from false to true
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
POST /api/marketplace-script-dry-run/{uuid}/run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: state_code
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_server_flavor_name
- New property: managed_rancher_server_system_volume_size_gb
- New property: managed_rancher_server_system_volume_type_name
- Modified property: openstack_offering_uuid_list
- Items changed
- Format changed from 'uuid' to ''
GET /api/marketplace-service-providers/{service_provider_uuid}/customers/
- New query param: owned_by_current_user
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: backend_url
- New property: cloud_init_template
- New property: password
- New property: username
- Deleted property: rancher_offering_uuid
- Modified property: customer_uuid
- Format changed from 'uuid' to ''
GET /api/marketplace-service-providers/{service_provider_uuid}/user_customers/
- New query param: owned_by_current_user
POST /api/marketplace-service-providers/{uuid}/add_user/
- Responses changed
- New response: 201
- Deleted response: 200
POST /api/marketplace-service-providers/{uuid}/update_user/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
GET /api/openstack-backups/
- New query param: can_manage
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
GET /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
PATCH /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
PUT /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
POST /api/openstack-backups/{uuid}/restore/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: fixed_ips
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
GET /api/openstack-floating-ips/
- New query param: can_manage
GET /api/openstack-instances/
- New query param: can_manage
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
GET /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
PATCH /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
PUT /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
POST /api/openstack-instances/{uuid}/backup/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
GET /api/openstack-instances/{uuid}/ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: fixed_ips
- ReadOnly changed from true to false
POST /api/openstack-instances/{uuid}/update_ports/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: fixed_ips
GET /api/openstack-migrations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: mappings
- Properties changed
- New property: sync_instance_ports
POST /api/openstack-migrations/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: mappings
- Properties changed
- New property: sync_instance_ports
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: mappings
- Properties changed
- New property: sync_instance_ports
GET /api/openstack-migrations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: mappings
- Properties changed
- New property: sync_instance_ports
PATCH /api/openstack-migrations/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: mappings
- Properties changed
- New property: sync_instance_ports
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: mappings
- Properties changed
- New property: sync_instance_ports
PUT /api/openstack-migrations/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: mappings
- Properties changed
- New property: sync_instance_ports
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: mappings
- Properties changed
- New property: sync_instance_ports
GET /api/openstack-networks/
- New query param: can_manage
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [rbac_policies]
- Modified query param: tenant
- Description changed from '' to 'Tenant URL'
- Modified query param: tenant_uuid
- Description changed from '' to 'Tenant UUID'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: rbac_policies
GET /api/openstack-networks/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [rbac_policies]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: rbac_policies
PATCH /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: rbac_policies
PUT /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: rbac_policies
GET /api/openstack-security-groups/
- New query param: can_manage
GET /api/openstack-server-groups/
- New query param: can_manage
GET /api/openstack-snapshots/
- New query param: can_manage
GET /api/openstack-subnets/
- New query param: can_manage
- Modified query param: tenant
- Description changed from '' to 'Tenant URL'
- Modified query param: tenant_uuid
- Description changed from '' to 'Tenant UUID'
GET /api/openstack-tenants/
- New query param: can_manage
GET /api/openstack-tenants/{uuid}/backend_instances/
- New query param: can_manage
GET /api/openstack-tenants/{uuid}/backend_volumes/
- New query param: can_manage
POST /api/openstack-tenants/{uuid}/create_network/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: rbac_policies
GET /api/openstack-volumes/
- New query param: can_manage
POST /api/projects/{uuid}/add_user/
- Responses changed
- New response: 201
- Deleted response: 200
POST /api/projects/{uuid}/move_project/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: preserve_permissions
- Properties changed
- New property: preserve_permissions
POST /api/projects/{uuid}/update_user/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
GET /api/promotions-campaigns/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
GET /api/promotions-campaigns/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: consumer_reviewed_by
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: consumer_reviewed_by_username
- Nullable changed from false to true
- Modified property: new_plan_name
- Nullable changed from false to true
- Modified property: new_plan_uuid
- Nullable changed from false to true
- Modified property: old_plan_name
- Nullable changed from false to true
- Modified property: old_plan_uuid
- Nullable changed from false to true
- Modified property: provider_reviewed_by
- Nullable changed from false to true
- Modified property: provider_reviewed_by_full_name
- Nullable changed from false to true
- Modified property: provider_reviewed_by_username
- Nullable changed from false to true
POST /api/proposal-proposals/{uuid}/add_user/
- Responses changed
- New response: 201
- Deleted response: 200
POST /api/proposal-proposals/{uuid}/update_user/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
POST /api/proposal-protected-calls/{uuid}/add_user/
- Responses changed
- New response: 201
- Deleted response: 200
POST /api/proposal-protected-calls/{uuid}/update_user/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
GET /api/rancher-apps/
- New query param: can_manage
GET /api/rancher-catalogs/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: scope_type
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RancherCatalogScopeType
- Schemas deleted: #/components/schemas/ScopeTypeEnum
POST /api/rancher-catalogs/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_type
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RancherCatalogScopeType
- Schemas deleted: #/components/schemas/ScopeTypeEnum
GET /api/rancher-catalogs/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_type
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RancherCatalogScopeType
- Schemas deleted: #/components/schemas/ScopeTypeEnum
PATCH /api/rancher-catalogs/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_type
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RancherCatalogScopeType
- Schemas deleted: #/components/schemas/ScopeTypeEnum
PUT /api/rancher-catalogs/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_type
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RancherCatalogScopeType
- Schemas deleted: #/components/schemas/ScopeTypeEnum
POST /api/rancher-catalogs/{uuid}/refresh/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_type
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RancherCatalogScopeType
- Schemas deleted: #/components/schemas/ScopeTypeEnum
GET /api/rancher-clusters/
- New query param: can_manage
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [node_command]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: node_command
POST /api/rancher-clusters/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: node_command
GET /api/rancher-clusters/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [node_command]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: node_command
PATCH /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: node_command
PUT /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: node_command
POST /api/rancher-clusters/{uuid}/create_management_security_group/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: node_command
GET /api/rancher-clusters/{uuid}/kubeconfig_file/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [node_command]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: node_command
GET /api/rancher-ingresses/
- New query param: can_manage
GET /api/rancher-nodes/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- Deleted required property: get_node_command
- Properties changed
- Deleted property: get_node_command
GET /api/rancher-nodes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: get_node_command
- Properties changed
- Deleted property: get_node_command
GET /api/rancher-services/
- New query param: can_manage
GET /api/rancher-users/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: cluster_roles
- Items changed
- Properties changed
- Modified property: role
- Format changed from '' to 'uri'
- Deleted enum values: [owner member]
- Modified property: project_roles
- Items changed
- Properties changed
- Modified property: role
- Format changed from '' to 'uri'
- MaxLength changed from 255 to null
GET /api/rancher-users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: cluster_roles
- Items changed
- Properties changed
- Modified property: role
- Format changed from '' to 'uri'
- Deleted enum values: [owner member]
- Modified property: project_roles
- Items changed
- Properties changed
- Modified property: role
- Format changed from '' to 'uri'
- MaxLength changed from 255 to null
GET /api/slurm-allocations/
- New query param: can_manage
GET /api/vmware-disks/
- New query param: can_manage
GET /api/vmware-ports/
- New query param: can_manage
GET /api/vmware-virtual-machine/
- New query param: can_manage
OpenAPI schema diff - 7.5.0
For version 7.5.0
New Endpoints: 2
GET /api/openstack-network-rbac-policies/
GET /api/openstack-network-rbac-policies/{uuid}/
Deleted Endpoints: None
Modified Endpoints: 34
GET /api/customers/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_unallocated_credit]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: customer_unallocated_credit
POST /api/customers/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_unallocated_credit
GET /api/customers/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_unallocated_credit]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_unallocated_credit
PATCH /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_unallocated_credit
PUT /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_unallocated_credit
GET /api/marketplace-robot-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- Deleted required property: state
POST /api/marketplace-robot-accounts/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state
GET /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state
PATCH /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state
PUT /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: state
GET /api/openstack-networks/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: rbac_policies
- Items changed
- Properties changed
- New property: network_name
- New property: target_tenant_name
- New property: url
GET /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rbac_policies
- Items changed
- Properties changed
- New property: network_name
- New property: target_tenant_name
- New property: url
PATCH /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rbac_policies
- Items changed
- Properties changed
- New property: network_name
- New property: target_tenant_name
- New property: url
PUT /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rbac_policies
- Items changed
- Properties changed
- New property: network_name
- New property: target_tenant_name
- New property: url
POST /api/openstack-networks/{uuid}/rbac_policy_create/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: network_name
- New property: target_tenant_name
- New property: url
POST /api/openstack-tenants/{uuid}/create_network/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rbac_policies
- Items changed
- Properties changed
- New property: network_name
- New property: target_tenant_name
- New property: url
GET /api/proposal-proposals/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: project_name
- Properties changed
- New property: project_name
POST /api/proposal-proposals/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: project_name
- Properties changed
- New property: project_name
GET /api/proposal-proposals/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: project_name
- Properties changed
- New property: project_name
GET /api/proposal-protected-calls/{uuid}/rounds/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Items changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
POST /api/proposal-protected-calls/{uuid}/rounds/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Items changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
GET /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Items changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
PATCH /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Items changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
PUT /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Items changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
GET /api/proposal-reviews/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
POST /api/proposal-reviews/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
GET /api/proposal-reviews/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
PATCH /api/proposal-reviews/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
PUT /api/proposal-reviews/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: proposal_uuid
- Properties changed
- New property: proposal_uuid
OpenAPI schema diff - 7.5.1
For version 7.5.1
New Endpoints: 21
GET /api/marketplace-customer-service-accounts/
POST /api/marketplace-customer-service-accounts/
DELETE /api/marketplace-customer-service-accounts/{uuid}/
GET /api/marketplace-customer-service-accounts/{uuid}/
PATCH /api/marketplace-customer-service-accounts/{uuid}/
PUT /api/marketplace-customer-service-accounts/{uuid}/
POST /api/marketplace-customer-service-accounts/{uuid}/rotate_api_key/
GET /api/marketplace-project-service-accounts/
POST /api/marketplace-project-service-accounts/
DELETE /api/marketplace-project-service-accounts/{uuid}/
GET /api/marketplace-project-service-accounts/{uuid}/
PATCH /api/marketplace-project-service-accounts/{uuid}/
PUT /api/marketplace-project-service-accounts/{uuid}/
POST /api/marketplace-project-service-accounts/{uuid}/rotate_api_key/
POST /api/openstack-ports/
PATCH /api/openstack-ports/{uuid}/
PUT /api/openstack-ports/{uuid}/
POST /api/openstack-ports/{uuid}/disable_port/
POST /api/openstack-ports/{uuid}/disable_port_security/
POST /api/openstack-ports/{uuid}/enable_port/
POST /api/openstack-ports/{uuid}/enable_port_security/
Deleted Endpoints: 2
POST /api/openstack-networks/{uuid}/create_port/
GET /api/rancher-clusters/{uuid}/kubeconfig_file/
Modified Endpoints: 43
GET /api/hooks-email/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
POST /api/hooks-email/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
GET /api/hooks-email/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
PATCH /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
PUT /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
GET /api/hooks-web/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
POST /api/hooks-web/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
GET /api/hooks-web/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
PATCH /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
PUT /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_port_updated service_account_created service_account_deleted service_account_updated]
GET /api/keycloak-user-group-memberships/
- New query param: state
GET /api/marketplace-provider-offerings/
- New query param: resource_customer_uuid
- New query param: resource_project_uuid
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
POST /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
GET /api/marketplace-provider-offerings/groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
GET /api/marketplace-provider-offerings/{uuid}/component_stats/
- New query param: resource_customer_uuid
- New query param: resource_project_uuid
GET /api/marketplace-provider-offerings/{uuid}/costs/
- New query param: resource_customer_uuid
- New query param: resource_project_uuid
GET /api/marketplace-provider-offerings/{uuid}/customers/
- New query param: resource_customer_uuid
- New query param: resource_project_uuid
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
GET /api/marketplace-public-offerings/
- New query param: resource_customer_uuid
- New query param: resource_project_uuid
GET /api/marketplace-robot-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
POST /api/marketplace-robot-accounts/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: description
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
- Modified property: users
- Description changed from '' to 'Users who have access to this robot account.'
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
- Modified property: users
- Description changed from '' to 'Users who have access to this robot account.'
GET /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
PATCH /api/marketplace-robot-accounts/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: description
- New property: resource
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
- Modified property: users
- Description changed from '' to 'Users who have access to this robot account.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
- Modified property: users
- Description changed from '' to 'Users who have access to this robot account.'
PUT /api/marketplace-robot-accounts/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: description
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
- Modified property: users
- Description changed from '' to 'Users who have access to this robot account.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
- Modified property: users
- Description changed from '' to 'Users who have access to this robot account.'
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: error_message
- Deleted required property: error_traceback
- Properties changed
- New property: description
- Modified property: state
- Property 'AllOf' changed
- Schemas added: #/components/schemas/RobotAccountStates
- Type changed from 'string' to ''
- Modified property: type
- Description changed from '' to 'Type of the robot account.'
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- New query param: resource_customer_uuid
- New query param: resource_project_uuid
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: argocd_k8s_kubeconfig
- New property: argocd_k8s_namespace
- New property: keycloak_password
- New property: keycloak_realm
- New property: keycloak_ssl_verify
- New property: keycloak_sync_frequency
- New property: keycloak_url
- New property: keycloak_user_realm
- New property: keycloak_username
- New property: vault_host
- New property: vault_port
- New property: vault_tls_verify
- New property: vault_token
GET /api/openstack-ports/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [admin_state_up]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: admin_state_up
- Modified property: allowed_address_pairs
- ReadOnly changed from true to false
- Modified property: port_security_enabled
- ReadOnly changed from true to false
- Modified property: security_groups
- ReadOnly changed from true to false
GET /api/openstack-ports/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [admin_state_up]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: admin_state_up
- Modified property: allowed_address_pairs
- ReadOnly changed from true to false
- Modified property: port_security_enabled
- ReadOnly changed from true to false
- Modified property: security_groups
- ReadOnly changed from true to false
GET /api/rancher-apps/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: external_url
- Nullable changed from false to true
POST /api/rancher-apps/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: external_url
- Nullable changed from false to true
GET /api/rancher-apps/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: external_url
- Nullable changed from false to true
PATCH /api/rancher-apps/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: external_url
- Nullable changed from false to true
PUT /api/rancher-apps/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: external_url
- Nullable changed from false to true
GET /api/rancher-role-templates/
- New query param: name
- New query param: scope_type
- New query param: settings_uuid
OpenAPI schema diff - 7.5.2
For version 7.5.2
New Endpoints: 1
POST /api/openstack-ports/{uuid}/update_port_ip/
Deleted Endpoints: None
Modified Endpoints: 82
GET /api/booking-resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/booking-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/customer-permissions-reviews/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: reviewer_full_name
- Nullable changed from false to true
- Modified property: reviewer_uuid
- Nullable changed from false to true
GET /api/customer-permissions-reviews/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: reviewer_full_name
- Nullable changed from false to true
- Modified property: reviewer_uuid
- Nullable changed from false to true
GET /api/keycloak-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: scope_name
- Nullable changed from false to true
GET /api/keycloak-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_name
- Nullable changed from false to true
GET /api/marketplace-orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
POST /api/marketplace-orders/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-orders/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
POST /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
GET /api/marketplace-provider-offerings/groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-provider-offerings/{uuid}/list_customer_projects/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: type_name
- Nullable changed from false to true
- Modified property: type_uuid
- Nullable changed from false to true
GET /api/marketplace-provider-offerings/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-provider-offerings/{uuid}/orders/{order_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
GET /api/marketplace-provider-resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-provider-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-provider-resources/{uuid}/details/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
POST /api/marketplace-provider-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
POST /api/marketplace-provider-resources/{uuid}/refresh_last_sync/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
POST /api/marketplace-provider-resources/{uuid}/set_as_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-resources/{uuid}/details/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
POST /api/marketplace-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: base_image_name
- New property: dns_nameservers
GET /api/marketplace-service-providers/{service_provider_uuid}/project_permissions/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: created_by_full_name
- Nullable changed from false to true
- Modified property: created_by_username
- Nullable changed from false to true
GET /api/marketplace-service-providers/{service_provider_uuid}/projects/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: type_name
- Nullable changed from false to true
- Modified property: type_uuid
- Nullable changed from false to true
GET /api/openstack-backups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
GET /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
PATCH /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
PUT /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
POST /api/openstack-backups/{uuid}/restore/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
GET /api/openstack-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
GET /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
PATCH /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
PUT /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
POST /api/openstack-instances/{uuid}/backup/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: floating_ips
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
- Modified property: ports
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
GET /api/openstack-instances/{uuid}/floating_ips/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: port_mac_address
- Nullable changed from false to true
GET /api/openstack-instances/{uuid}/ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: subnet_cidr
- Nullable changed from false to true
- Modified property: subnet_description
- Nullable changed from false to true
- Modified property: subnet_name
- Nullable changed from false to true
- Modified property: subnet_uuid
- Nullable changed from false to true
GET /api/projects/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: type_name
- Nullable changed from false to true
- Modified property: type_uuid
- Nullable changed from false to true
POST /api/projects/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: type_name
- Nullable changed from false to true
- Modified property: type_uuid
- Nullable changed from false to true
GET /api/projects/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: type_name
- Nullable changed from false to true
- Modified property: type_uuid
- Nullable changed from false to true
PATCH /api/projects/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: type_name
- Nullable changed from false to true
- Modified property: type_uuid
- Nullable changed from false to true
PUT /api/projects/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: type_name
- Nullable changed from false to true
- Modified property: type_uuid
- Nullable changed from false to true
POST /api/projects/{uuid}/move_project/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: type_name
- Nullable changed from false to true
- Modified property: type_uuid
- Nullable changed from false to true
GET /api/promotions-campaigns/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/promotions-campaigns/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
- Modified property: plan_description
- Nullable changed from false to true
- Modified property: plan_name
- Nullable changed from false to true
- Modified property: plan_unit
- Nullable changed from false to true
- Modified property: plan_uuid
- Nullable changed from false to true
GET /api/proposal-reviews/
- New query param: proposal_name
GET /api/rancher-cluster-templates/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: nodes
- Items changed
- Required changed
- New required property: role
- Deleted required property: roles
- Properties changed
- New property: role
- Deleted property: roles
GET /api/rancher-cluster-templates/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Required changed
- New required property: role
- Deleted required property: roles
- Properties changed
- New property: role
- Deleted property: roles
GET /api/rancher-clusters/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: nodes
- Items changed
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: etcd_role
- Deleted property: worker_role
POST /api/rancher-clusters/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Required changed
- New required property: role
- Deleted required property: roles
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: roles
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: etcd_role
- Deleted property: worker_role
GET /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: etcd_role
- Deleted property: worker_role
PATCH /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: etcd_role
- Deleted property: worker_role
PUT /api/rancher-clusters/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Required changed
- New required property: role
- Deleted required property: roles
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: roles
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: etcd_role
- Deleted property: worker_role
POST /api/rancher-clusters/{uuid}/create_management_security_group/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Required changed
- New required property: role
- Deleted required property: roles
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: roles
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: etcd_role
- Deleted property: worker_role
GET /api/rancher-nodes/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: role
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: etcd_role
- Deleted property: worker_role
POST /api/rancher-nodes/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: role
- Deleted required property: roles
- Properties changed
- New property: role
- Deleted property: roles
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: role
- Properties changed
- New property: role
GET /api/rancher-nodes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: role
- Properties changed
- New property: role
- Deleted property: controlplane_role
- Deleted property: etcd_role
- Deleted property: worker_role
GET /api/rancher-template-versions/{template_uuid}/{version}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: questions
- Items changed
- Properties changed
- New property: validate_
- Deleted property: validate
- Modified property: subquestions
- Items changed
- Properties changed
- New property: validate_
- Deleted property: validate
GET /api/service-settings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: customer_name
- Nullable changed from false to true
GET /api/service-settings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: customer_name
- Nullable changed from false to true
GET /api/slurm-jobs/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: user_username
- Nullable changed from false to true
- Modified property: user_uuid
- Nullable changed from false to true
POST /api/slurm-jobs/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: user_username
- Nullable changed from false to true
- Modified property: user_uuid
- Nullable changed from false to true
GET /api/slurm-jobs/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: user_username
- Nullable changed from false to true
- Modified property: user_uuid
- Nullable changed from false to true
PATCH /api/slurm-jobs/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: user_username
- Nullable changed from false to true
- Modified property: user_uuid
- Nullable changed from false to true
PUT /api/slurm-jobs/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: user_username
- Nullable changed from false to true
- Modified property: user_uuid
- Nullable changed from false to true
GET /api/support-issues/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: assignee_name
- Nullable changed from false to true
- Modified property: assignee_uuid
- Nullable changed from false to true
- Modified property: caller_full_name
- Nullable changed from false to true
- Modified property: caller_uuid
- Nullable changed from false to true
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: reporter_name
- Nullable changed from false to true
- Modified property: reporter_uuid
- Nullable changed from false to true
POST /api/support-issues/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: assignee_name
- Nullable changed from false to true
- Modified property: assignee_uuid
- Nullable changed from false to true
- Modified property: caller_full_name
- Nullable changed from false to true
- Modified property: caller_uuid
- Nullable changed from false to true
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: reporter_name
- Nullable changed from false to true
- Modified property: reporter_uuid
- Nullable changed from false to true
GET /api/support-issues/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: assignee_name
- Nullable changed from false to true
- Modified property: assignee_uuid
- Nullable changed from false to true
- Modified property: caller_full_name
- Nullable changed from false to true
- Modified property: caller_uuid
- Nullable changed from false to true
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: reporter_name
- Nullable changed from false to true
- Modified property: reporter_uuid
- Nullable changed from false to true
PATCH /api/support-issues/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: assignee_name
- Nullable changed from false to true
- Modified property: assignee_uuid
- Nullable changed from false to true
- Modified property: caller_full_name
- Nullable changed from false to true
- Modified property: caller_uuid
- Nullable changed from false to true
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: reporter_name
- Nullable changed from false to true
- Modified property: reporter_uuid
- Nullable changed from false to true
PUT /api/support-issues/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: assignee_name
- Nullable changed from false to true
- Modified property: assignee_uuid
- Nullable changed from false to true
- Modified property: caller_full_name
- Nullable changed from false to true
- Modified property: caller_uuid
- Nullable changed from false to true
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: reporter_name
- Nullable changed from false to true
- Modified property: reporter_uuid
- Nullable changed from false to true
POST /api/support-issues/{uuid}/sync/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: assignee_name
- Nullable changed from false to true
- Modified property: assignee_uuid
- Nullable changed from false to true
- Modified property: caller_full_name
- Nullable changed from false to true
- Modified property: caller_uuid
- Nullable changed from false to true
- Modified property: customer_name
- Nullable changed from false to true
- Modified property: customer_uuid
- Nullable changed from false to true
- Modified property: project_name
- Nullable changed from false to true
- Modified property: project_uuid
- Nullable changed from false to true
- Modified property: reporter_name
- Nullable changed from false to true
- Modified property: reporter_uuid
- Nullable changed from false to true
OpenAPI schema diff - 7.5.3
For version 7.5.3
New Endpoints: None
Deleted Endpoints: None
Modified Endpoints: 188
GET /api/aws-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/aws-instances/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/aws-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/aws-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/aws-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/aws-volumes/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/aws-volumes/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/aws-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/aws-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/aws-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-public-ips/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/azure-public-ips/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-public-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/azure-public-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/azure-public-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-resource-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-resource-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-sql-databases/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/azure-sql-databases/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-sql-databases/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/azure-sql-databases/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/azure-sql-databases/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-sql-servers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/azure-sql-servers/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-sql-servers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/azure-sql-servers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/azure-sql-servers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-virtualmachines/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/azure-virtualmachines/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/azure-virtualmachines/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/azure-virtualmachines/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/azure-virtualmachines/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/booking-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/booking-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/digitalocean-droplets/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/digitalocean-droplets/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/digitalocean-droplets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/digitalocean-droplets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/digitalocean-droplets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/keycloak-user-group-memberships/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: group_scope_name
- Properties changed
- New property: group_scope_name
POST /api/keycloak-user-group-memberships/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: group_scope_name
- Properties changed
- New property: group_scope_name
GET /api/keycloak-user-group-memberships/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: group_scope_name
- Properties changed
- New property: group_scope_name
PATCH /api/keycloak-user-group-memberships/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: group_scope_name
- Properties changed
- New property: group_scope_name
PUT /api/keycloak-user-group-memberships/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: group_scope_name
- Properties changed
- New property: group_scope_name
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-provider-offerings/groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-public-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-public-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-robot-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
POST /api/marketplace-script-dry-run/{uuid}/run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- New property: managed_rancher_load_balancer_data_volume_size_gb
- New property: managed_rancher_load_balancer_data_volume_type_name
- New property: managed_rancher_load_balancer_flavor_name
- New property: managed_rancher_load_balancer_system_volume_size_gb
- New property: managed_rancher_load_balancer_system_volume_type_name
- New property: managed_rancher_server_data_volume_size_gb
- New property: managed_rancher_server_data_volume_type_name
- New property: managed_rancher_worker_system_volume_size_gb
- New property: managed_rancher_worker_system_volume_type_name
GET /api/openstack-backups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-backups/{uuid}/restore/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
- Modified property: server_group
- Property 'AllOf' changed
- Schemas added: #/components/schemas/OpenStackNestedServerGroup
- Type changed from 'object' to ''
- Nullable changed from false to true
- Properties changed
- Deleted property: name
- Deleted property: policy
- Deleted property: state
- Deleted property: url
GET /api/openstack-floating-ips/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-floating-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
- Modified property: server_group
- Property 'AllOf' changed
- Schemas added: #/components/schemas/OpenStackNestedServerGroup
- Type changed from 'object' to ''
- Nullable changed from false to true
- Properties changed
- Deleted property: name
- Deleted property: policy
- Deleted property: state
- Deleted property: url
GET /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
- Modified property: server_group
- Property 'AllOf' changed
- Schemas added: #/components/schemas/OpenStackNestedServerGroup
- Type changed from 'object' to ''
- Nullable changed from false to true
- Properties changed
- Deleted property: name
- Deleted property: policy
- Deleted property: state
- Deleted property: url
PATCH /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
- Modified property: server_group
- Property 'AllOf' changed
- Schemas added: #/components/schemas/OpenStackNestedServerGroup
- Type changed from 'object' to ''
- Nullable changed from false to true
- Properties changed
- Deleted property: name
- Deleted property: policy
- Deleted property: state
- Deleted property: url
PUT /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
- Modified property: server_group
- Property 'AllOf' changed
- Schemas added: #/components/schemas/OpenStackNestedServerGroup
- Type changed from 'object' to ''
- Nullable changed from false to true
- Properties changed
- Deleted property: name
- Deleted property: policy
- Deleted property: state
- Deleted property: url
POST /api/openstack-instances/{uuid}/backup/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-networks/
- New query param: direct_only
- New query param: rbac_only
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-networks/{uuid}/create_subnet/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-ports/
- New query param: query
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [status]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: status
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-ports/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: status
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-ports/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [status]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: status
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: status
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: status
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-ports/{uuid}/disable_port/
- Request body changed
POST /api/openstack-ports/{uuid}/disable_port_security/
- Request body changed
POST /api/openstack-ports/{uuid}/enable_port/
- Request body changed
POST /api/openstack-ports/{uuid}/enable_port_security/
- Request body changed
GET /api/openstack-routers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-routers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-security-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-security-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-server-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-server-groups/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-server-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/openstack-server-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/openstack-server-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-snapshots/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-snapshots/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/openstack-snapshots/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/openstack-snapshots/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-snapshots/{uuid}/restore/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-subnets/
- New query param: direct_only
- New query param: rbac_only
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-subnets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/openstack-subnets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/openstack-subnets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-tenants/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-tenants/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/create_floating_ip/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/create_network/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/create_security_group/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/create_server_group/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/pull_security_groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/pull_server_groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-volumes/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/openstack-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/openstack-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/openstack-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/openstack-volumes/{uuid}/snapshot/
- Responses changed
- New response: 201
- Deleted response: 200
GET /api/override-settings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: ENABLE_RESOURCE_END_DATE
POST /api/override-settings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: ENABLE_RESOURCE_END_DATE
GET /api/proposal-proposals/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: supporting_documentation
- Items changed
- Required changed
- New required property: file_size
- Properties changed
- New property: file_size
POST /api/proposal-proposals/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: supporting_documentation
- Items changed
- Required changed
- New required property: file_size
- Properties changed
- New property: file_size
GET /api/proposal-proposals/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: supporting_documentation
- Items changed
- Required changed
- New required property: file_size
- Properties changed
- New property: file_size
GET /api/proposal-protected-calls/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: documents
- Items changed
- Properties changed
- New property: file_size
POST /api/proposal-protected-calls/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: documents
- Items changed
- Properties changed
- New property: file_size
GET /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: documents
- Items changed
- Properties changed
- New property: file_size
PATCH /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: documents
- Items changed
- Properties changed
- New property: file_size
PUT /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: documents
- Items changed
- Properties changed
- New property: file_size
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: documents
- Items changed
- Properties changed
- New property: file_size
GET /api/proposal-public-calls/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: documents
- Items changed
- Properties changed
- New property: file_size
GET /api/proposal-public-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: documents
- Items changed
- Properties changed
- New property: file_size
GET /api/rancher-apps/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/rancher-apps/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/rancher-apps/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/rancher-apps/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/rancher-apps/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/rancher-clusters/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [vm_project]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: vm_project
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/rancher-clusters/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: tenant
- Properties changed
- New property: vm_project
- Modified property: nodes
- Items changed
- Properties changed
- New property: tenant
- Modified property: data_volumes
- Items changed
- Properties changed
- New property: filesystem
- Modified property: mount_point
- New enum values: [/opt/rke2_storage]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: vm_project
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/rancher-clusters/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [vm_project]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: vm_project
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/rancher-clusters/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: vm_project
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: vm_project
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/rancher-clusters/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: tenant
- Properties changed
- New property: vm_project
- Modified property: nodes
- Items changed
- Properties changed
- New property: tenant
- Modified property: data_volumes
- Items changed
- Properties changed
- New property: filesystem
- Modified property: mount_point
- New enum values: [/opt/rke2_storage]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: vm_project
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/rancher-clusters/{uuid}/create_management_security_group/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: tenant
- Properties changed
- New property: vm_project
- Modified property: nodes
- Items changed
- Properties changed
- New property: tenant
- Modified property: data_volumes
- Items changed
- Properties changed
- New property: filesystem
- Modified property: mount_point
- New enum values: [/opt/rke2_storage]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: vm_project
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/rancher-ingresses/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/rancher-ingresses/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/rancher-ingresses/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/rancher-ingresses/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/rancher-ingresses/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/rancher-ingresses/{uuid}/yaml/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/rancher-ingresses/{uuid}/yaml/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/rancher-nodes/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: tenant
- Modified property: data_volumes
- Items changed
- Properties changed
- New property: filesystem
- Modified property: mount_point
- New enum values: [/opt/rke2_storage]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: uuid
- Properties changed
- New property: uuid
GET /api/rancher-services/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/rancher-services/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/rancher-services/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/rancher-services/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/rancher-services/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/rancher-services/{uuid}/yaml/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/rancher-services/{uuid}/yaml/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/slurm-allocations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/slurm-allocations/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/slurm-allocations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/slurm-allocations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/slurm-allocations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/support-issues/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: feedback
- Nullable changed from false to true
POST /api/support-issues/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: feedback
- Nullable changed from false to true
GET /api/support-issues/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: feedback
- Nullable changed from false to true
PATCH /api/support-issues/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: feedback
- Nullable changed from false to true
PUT /api/support-issues/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: feedback
- Nullable changed from false to true
POST /api/support-issues/{uuid}/sync/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: feedback
- Nullable changed from false to true
GET /api/vmware-disks/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/vmware-disks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/vmware-ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/vmware-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/vmware-virtual-machine/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/vmware-virtual-machine/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
GET /api/vmware-virtual-machine/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PATCH /api/vmware-virtual-machine/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
PUT /api/vmware-virtual-machine/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/vmware-virtual-machine/{uuid}/create_disk/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
POST /api/vmware-virtual-machine/{uuid}/create_port/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_limit_based
- Nullable changed from false to true
- Modified property: is_usage_based
- Nullable changed from false to true
- Modified property: marketplace_category_uuid
- Nullable changed from false to true
- Modified property: marketplace_offering_name
- Nullable changed from false to true
- Modified property: marketplace_offering_plugin_options
- Nullable changed from false to true
- Modified property: marketplace_offering_uuid
- Nullable changed from false to true
- Modified property: marketplace_plan_uuid
- Nullable changed from false to true
- Modified property: marketplace_resource_state
- Nullable changed from false to true
- Modified property: marketplace_resource_uuid
- Nullable changed from false to true
OpenAPI schema diff - 7.5.4
For version 7.5.4
New Endpoints: None
Deleted Endpoints: None
Modified Endpoints: 14
GET /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: node_disk_driver
POST /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: node_disk_driver
GET /api/marketplace-provider-offerings/groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: node_disk_driver
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: node_disk_driver
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: node_disk_driver
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: node_disk_driver
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: node_disk_driver
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Properties changed
- New property: node_disk_driver
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: node_disk_driver
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: node_disk_driver
GET /api/openstack-migrations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: error_message
- New property: error_traceback
GET /api/openstack-migrations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: error_message
- New property: error_traceback
PATCH /api/openstack-migrations/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: error_message
- New property: error_traceback
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: error_message
- New property: error_traceback
PUT /api/openstack-migrations/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: error_message
- New property: error_traceback
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: error_message
- New property: error_traceback
OpenAPI schema diff - 7.5.5
For version 7.5.5
New Endpoints: 7
POST /api/openstack-routers/{uuid}/add_router_interface/
POST /api/openstack-routers/{uuid}/remove_router_interface/
GET /api/projects/{uuid}/other_users/
GET /api/rancher-cluster-security-groups/
GET /api/rancher-cluster-security-groups/{uuid}/
PATCH /api/rancher-cluster-security-groups/{uuid}/
PUT /api/rancher-cluster-security-groups/{uuid}/
Deleted Endpoints: None
Modified Endpoints: 40
GET /api/booking-resources/
- New query param: has_terminate_date
PATCH /api/invoice-items/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: unit_price
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: unit_price
PUT /api/invoice-items/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: unit_price
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: unit_price
GET /api/marketplace-component-user-usages/
- New query param: billing_period_month
- New query param: billing_period_year
- New query param: o
- New query param: username
GET /api/marketplace-customer-service-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- Properties changed
- New property: customer_name
- New property: customer_uuid
POST /api/marketplace-customer-service-accounts/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- Properties changed
- New property: customer_name
- New property: customer_uuid
GET /api/marketplace-customer-service-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- Properties changed
- New property: customer_name
- New property: customer_uuid
PATCH /api/marketplace-customer-service-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- Properties changed
- New property: customer_name
- New property: customer_uuid
PUT /api/marketplace-customer-service-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- Properties changed
- New property: customer_name
- New property: customer_uuid
POST /api/marketplace-customer-service-accounts/{uuid}/rotate_api_key/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- Properties changed
- New property: customer_name
- New property: customer_uuid
GET /api/marketplace-project-service-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: customer_abbreviation
- New required property: customer_name
- New required property: customer_uuid
- New required property: project_name
- New required property: project_uuid
- Properties changed
- New property: customer_abbreviation
- New property: customer_name
- New property: customer_uuid
- New property: project_name
- New property: project_uuid
POST /api/marketplace-project-service-accounts/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_abbreviation
- New required property: customer_name
- New required property: customer_uuid
- New required property: project_name
- New required property: project_uuid
- Properties changed
- New property: customer_abbreviation
- New property: customer_name
- New property: customer_uuid
- New property: project_name
- New property: project_uuid
GET /api/marketplace-project-service-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_abbreviation
- New required property: customer_name
- New required property: customer_uuid
- New required property: project_name
- New required property: project_uuid
- Properties changed
- New property: customer_abbreviation
- New property: customer_name
- New property: customer_uuid
- New property: project_name
- New property: project_uuid
PATCH /api/marketplace-project-service-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_abbreviation
- New required property: customer_name
- New required property: customer_uuid
- New required property: project_name
- New required property: project_uuid
- Properties changed
- New property: customer_abbreviation
- New property: customer_name
- New property: customer_uuid
- New property: project_name
- New property: project_uuid
PUT /api/marketplace-project-service-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_abbreviation
- New required property: customer_name
- New required property: customer_uuid
- New required property: project_name
- New required property: project_uuid
- Properties changed
- New property: customer_abbreviation
- New property: customer_name
- New property: customer_uuid
- New property: project_name
- New property: project_uuid
POST /api/marketplace-project-service-accounts/{uuid}/rotate_api_key/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_abbreviation
- New required property: customer_name
- New required property: customer_uuid
- New required property: project_name
- New required property: project_uuid
- Properties changed
- New property: customer_abbreviation
- New property: customer_name
- New property: customer_uuid
- New property: project_name
- New property: project_uuid
GET /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: k8s_version
- New property: private_registry_password
- New property: private_registry_url
- New property: private_registry_user
POST /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: k8s_version
- New property: private_registry_password
- New property: private_registry_url
- New property: private_registry_user
GET /api/marketplace-provider-offerings/groups/
- OperationID changed from 'marketplace_provider_offerings_groups_retrieve' to 'marketplace_provider_offerings_groups_list'
- New query param: accessible_via_calls
- New query param: allowed_customer_uuid
- New query param: attributes
- New query param: billable
- New query param: category_group_uuid
- New query param: category_uuid
- New query param: created
- New query param: customer
- New query param: customer_uuid
- New query param: description
- New query param: keyword
- New query param: modified
- New query param: name
- New query param: name_exact
- New query param: o
- New query param: organization_group_uuid
- New query param: page
- New query param: page_size
- New query param: parent_uuid
- New query param: project_uuid
- New query param: resource_customer_uuid
- New query param: resource_project_uuid
- New query param: scope_uuid
- New query param: service_manager_uuid
- New query param: shared
- New query param: state
- New query param: type
- Deleted query param: field
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Type changed from 'object' to 'array'
- Items changed
- Schema added
- Properties changed
- Deleted property: access_url
- Deleted property: attributes
- Deleted property: backend_id
- Deleted property: backend_metadata
- Deleted property: billable
- Deleted property: category
- Deleted property: category_title
- Deleted property: category_uuid
- Deleted property: citation_count
- Deleted property: components
- Deleted property: country
- Deleted property: created
- Deleted property: customer
- Deleted property: customer_name
- Deleted property: customer_uuid
- Deleted property: datacite_doi
- Deleted property: description
- Deleted property: endpoints
- Deleted property: files
- Deleted property: full_description
- Deleted property: getting_started
- Deleted property: google_calendar_is_public
- Deleted property: google_calendar_link
- Deleted property: image
- Deleted property: integration_guide
- Deleted property: integration_status
- Deleted property: latitude
- Deleted property: longitude
- Deleted property: name
- Deleted property: options
- Deleted property: order_count
- Deleted property: organization_groups
- Deleted property: parent_description
- Deleted property: parent_name
- Deleted property: parent_uuid
- Deleted property: paused_reason
- Deleted property: plans
- Deleted property: plugin_options
- Deleted property: privacy_policy_link
- Deleted property: project
- Deleted property: project_name
- Deleted property: project_uuid
- Deleted property: quotas
- Deleted property: resource_options
- Deleted property: roles
- Deleted property: scope
- Deleted property: scope_error_message
- Deleted property: scope_name
- Deleted property: scope_state
- Deleted property: scope_uuid
- Deleted property: screenshots
- Deleted property: secret_options
- Deleted property: service_attributes
- Deleted property: shared
- Deleted property: slug
- Deleted property: state
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Deleted property: thumbnail
- Deleted property: total_cost
- Deleted property: total_cost_estimated
- Deleted property: total_customers
- Deleted property: type
- Deleted property: url
- Deleted property: uuid
- Deleted property: vendor_details
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: k8s_version
- New property: private_registry_password
- New property: private_registry_url
- New property: private_registry_user
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: k8s_version
- New property: private_registry_password
- New property: private_registry_url
- New property: private_registry_user
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: k8s_version
- New property: private_registry_password
- New property: private_registry_url
- New property: private_registry_user
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: k8s_version
- New property: private_registry_password
- New property: private_registry_url
- New property: private_registry_user
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Properties changed
- New property: k8s_version
- New property: private_registry_password
- New property: private_registry_url
- New property: private_registry_user
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: k8s_version
- New property: private_registry_password
- New property: private_registry_url
- New property: private_registry_user
GET /api/marketplace-provider-resources/
- New query param: has_terminate_date
GET /api/marketplace-resources/
- New query param: has_terminate_date
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: k8s_version
- New property: private_registry_password
- New property: private_registry_url
- New property: private_registry_user
POST /api/openstack-backups/{uuid}/restore/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: port
POST /api/openstack-instances/{uuid}/update_ports/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: port
GET /api/openstack-ports/
- New query param: admin_state_up
- New query param: backend_id
- New query param: device_id
- New query param: device_owner
- New query param: has_device_owner
- New query param: mac_address
- New query param: status
- Modified query param: query
- Description changed from '' to 'Query'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: admin_state_up
- Type changed from 'string' to 'boolean'
POST /api/openstack-ports/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: admin_state_up
- Type changed from 'string' to 'boolean'
GET /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: admin_state_up
- Type changed from 'string' to 'boolean'
PATCH /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: admin_state_up
- Type changed from 'string' to 'boolean'
PUT /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: admin_state_up
- Type changed from 'string' to 'boolean'
POST /api/rancher-clusters/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Properties changed
- Modified property: data_volumes
- Items changed
- Required changed
- New required property: mount_point
- Properties changed
- Modified property: mount_point
- Deleted enum values: [/var/lib/docker /var/lib/etcd /opt/media01 /opt/rke2_storage]
- MinLength changed from 0 to 1
PUT /api/rancher-clusters/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Properties changed
- Modified property: data_volumes
- Items changed
- Required changed
- New required property: mount_point
- Properties changed
- Modified property: mount_point
- Deleted enum values: [/var/lib/docker /var/lib/etcd /opt/media01 /opt/rke2_storage]
- MinLength changed from 0 to 1
POST /api/rancher-clusters/{uuid}/create_management_security_group/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: nodes
- Items changed
- Properties changed
- Modified property: data_volumes
- Items changed
- Required changed
- New required property: mount_point
- Properties changed
- Modified property: mount_point
- Deleted enum values: [/var/lib/docker /var/lib/etcd /opt/media01 /opt/rke2_storage]
- MinLength changed from 0 to 1
POST /api/rancher-nodes/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: data_volumes
- Items changed
- Required changed
- New required property: mount_point
- Properties changed
- Modified property: mount_point
- Deleted enum values: [/var/lib/docker /var/lib/etcd /opt/media01 /opt/rke2_storage]
- MinLength changed from 0 to 1
GET /api/rancher-role-templates/
- New query param: o
OpenAPI schema diff - 7.5.6
For version 7.5.6
New Endpoints: 2
GET /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/
GET /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/
Deleted Endpoints: None
Modified Endpoints: 17
GET /api/marketplace-component-usages/
- New query param: o
GET /api/openstack-backups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: url
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
GET /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: url
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
PATCH /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: url
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
PUT /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: url
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
POST /api/openstack-backups/{uuid}/restore/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
GET /api/openstack-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
GET /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
PATCH /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
PUT /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
POST /api/openstack-instances/{uuid}/backup/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: url
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: url
GET /api/openstack-instances/{uuid}/ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: url
GET /api/openstack-ports/
- New query param: exclude_subnet_uuids
GET /api/openstack-routers/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [ports]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: ports
GET /api/openstack-routers/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [ports]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: ports
GET /api/override-settings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: RANCHER_USERNAME_INPUT_LABEL
POST /api/override-settings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: RANCHER_USERNAME_INPUT_LABEL
OpenAPI schema diff - 7.5.7
For version 7.5.7
New Endpoints: 2
POST /api/openstack-routers/
DELETE /api/openstack-routers/{uuid}/
Deleted Endpoints: None
Modified Endpoints: None
OpenAPI schema diff - 7.5.8
For version 7.5.8
New Endpoints: None
Deleted Endpoints: None
Modified Endpoints: 6
GET /api/rancher-clusters/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [public_ips]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: public_ips
POST /api/rancher-clusters/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: public_ips
GET /api/rancher-clusters/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [public_ips]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: public_ips
PATCH /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: public_ips
PUT /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: public_ips
POST /api/rancher-clusters/{uuid}/create_management_security_group/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: public_ips
OpenAPI schema diff - 7.5.9
For version 7.5.9
New Endpoints: None
Deleted Endpoints: None
Modified Endpoints: 160
GET /api/aws-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/aws-instances/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/aws-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/aws-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/aws-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/aws-volumes/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/aws-volumes/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/aws-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/aws-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/aws-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-public-ips/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/azure-public-ips/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-public-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/azure-public-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/azure-public-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-resource-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-resource-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-sql-databases/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/azure-sql-databases/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-sql-databases/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/azure-sql-databases/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/azure-sql-databases/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-sql-servers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/azure-sql-servers/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-sql-servers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/azure-sql-servers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/azure-sql-servers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-virtualmachines/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/azure-virtualmachines/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/azure-virtualmachines/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/azure-virtualmachines/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/azure-virtualmachines/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/digitalocean-droplets/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/digitalocean-droplets/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/digitalocean-droplets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/digitalocean-droplets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/digitalocean-droplets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/hooks-email/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
POST /api/hooks-email/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
GET /api/hooks-email/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
PATCH /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
PUT /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
GET /api/hooks-web/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
POST /api/hooks-web/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
GET /api/hooks-web/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
PATCH /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
PUT /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_groups
- Items changed
- New enum values: [offering_accounting]
GET /api/invoices/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: customer_details
- Properties changed
- Modified property: country_name
- Nullable changed from false to true
- Modified property: issuer_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/CustomerDetails
- Properties changed
- Modified property: country_name
- Nullable changed from false to true
GET /api/invoices/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: customer_details
- Properties changed
- Modified property: country_name
- Nullable changed from false to true
- Modified property: issuer_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/CustomerDetails
- Properties changed
- Modified property: country_name
- Nullable changed from false to true
POST /api/invoices/{uuid}/paid/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: customer_details
- Properties changed
- Modified property: country_name
- Nullable changed from false to true
- Modified property: issuer_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/CustomerDetails
- Properties changed
- Modified property: country_name
- Nullable changed from false to true
GET /api/marketplace-customer-service-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
POST /api/marketplace-customer-service-accounts/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: preferred_identifier
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
GET /api/marketplace-customer-service-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
PATCH /api/marketplace-customer-service-accounts/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: preferred_identifier
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
PUT /api/marketplace-customer-service-accounts/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: preferred_identifier
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
POST /api/marketplace-customer-service-accounts/{uuid}/rotate_api_key/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
GET /api/marketplace-project-service-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
POST /api/marketplace-project-service-accounts/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: preferred_identifier
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
GET /api/marketplace-project-service-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
PATCH /api/marketplace-project-service-accounts/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: preferred_identifier
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
PUT /api/marketplace-project-service-accounts/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: preferred_identifier
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
POST /api/marketplace-project-service-accounts/{uuid}/rotate_api_key/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: expires_at
- Deleted required property: expiresAt
- Properties changed
- New property: expires_at
- New property: preferred_identifier
- Deleted property: expiresAt
GET /api/openstack-backups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-backups/{uuid}/restore/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
- Modified property: rancher_cluster
- Property 'AllOf' changed
- Modified schema: #/components/schemas/RancherClusterReference
- Properties changed
- Modified property: marketplace_uuid
- Nullable changed from false to true
GET /api/openstack-floating-ips/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-floating-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
- Modified property: rancher_cluster
- Property 'AllOf' changed
- Modified schema: #/components/schemas/RancherClusterReference
- Properties changed
- Modified property: marketplace_uuid
- Nullable changed from false to true
GET /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
- Modified property: rancher_cluster
- Property 'AllOf' changed
- Modified schema: #/components/schemas/RancherClusterReference
- Properties changed
- Modified property: marketplace_uuid
- Nullable changed from false to true
PATCH /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
- Modified property: rancher_cluster
- Property 'AllOf' changed
- Modified schema: #/components/schemas/RancherClusterReference
- Properties changed
- Modified property: marketplace_uuid
- Nullable changed from false to true
PUT /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
- Modified property: rancher_cluster
- Property 'AllOf' changed
- Modified schema: #/components/schemas/RancherClusterReference
- Properties changed
- Modified property: marketplace_uuid
- Nullable changed from false to true
POST /api/openstack-instances/{uuid}/backup/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-networks/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-networks/{uuid}/create_subnet/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-ports/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-routers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-routers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-security-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-security-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-server-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-server-groups/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-server-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/openstack-server-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/openstack-server-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-snapshots/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-snapshots/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/openstack-snapshots/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/openstack-snapshots/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-snapshots/{uuid}/restore/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extend_enabled
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-subnets/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-subnets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/openstack-subnets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/openstack-subnets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-tenants/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-tenants/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/create_floating_ip/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/create_network/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/create_security_group/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/create_server_group/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/pull_security_groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-tenants/{uuid}/pull_server_groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-volumes/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [extend_enabled]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: extend_enabled
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/openstack-volumes/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [extend_enabled]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extend_enabled
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/openstack-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extend_enabled
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/openstack-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extend_enabled
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/openstack-volumes/{uuid}/snapshot/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-apps/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/rancher-apps/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-apps/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/rancher-apps/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/rancher-apps/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-cluster-security-groups/
- New query param: cluster_uuid
GET /api/rancher-clusters/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/rancher-clusters/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/rancher-clusters/{uuid}/create_management_security_group/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-ingresses/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/rancher-ingresses/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-ingresses/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/rancher-ingresses/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/rancher-ingresses/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-ingresses/{uuid}/yaml/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/rancher-ingresses/{uuid}/yaml/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-services/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/rancher-services/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-services/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/rancher-services/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/rancher-services/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/rancher-services/{uuid}/yaml/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/rancher-services/{uuid}/yaml/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/slurm-allocations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/slurm-allocations/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/slurm-allocations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/slurm-allocations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/slurm-allocations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/vmware-disks/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/vmware-disks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/vmware-ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/vmware-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/vmware-virtual-machine/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/vmware-virtual-machine/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
GET /api/vmware-virtual-machine/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PATCH /api/vmware-virtual-machine/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
PUT /api/vmware-virtual-machine/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/vmware-virtual-machine/{uuid}/create_disk/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
POST /api/vmware-virtual-machine/{uuid}/create_port/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: marketplace_category_name
- Nullable changed from false to true
OpenAPI schema diff - 7.6.0
For version 7.6.0
New Endpoints: 3
GET /api/customer-credits/{uuid}/consumptions/
GET /api/invoice-items/{uuid}/consumptions/
POST /api/marketplace-provider-offerings/{uuid}/move_offering/
Deleted Endpoints: None
Modified Endpoints: 24
GET /api/booking-resources/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_settings_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
GET /api/booking-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_settings_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
GET /api/marketplace-provider-offerings/{uuid}/list_customer_users/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: notifications_enabled
GET /api/marketplace-provider-resources/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_settings_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
GET /api/marketplace-provider-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_settings_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
GET /api/marketplace-provider-resources/{uuid}/details/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_settings_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
POST /api/marketplace-provider-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
POST /api/marketplace-provider-resources/{uuid}/refresh_last_sync/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
POST /api/marketplace-provider-resources/{uuid}/set_as_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
GET /api/marketplace-resources/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_settings_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
GET /api/marketplace-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_settings_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
GET /api/marketplace-resources/{uuid}/details/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_settings_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
POST /api/marketplace-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
GET /api/override-settings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: CALL_MANAGEMENT_HERO_IMAGE
- New property: MARKETPLACE_HERO_IMAGE
POST /api/override-settings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: CALL_MANAGEMENT_HERO_IMAGE
- New property: MARKETPLACE_HERO_IMAGE
GET /api/promotions-campaigns/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: service_settings_uuid
- Modified property: limit_usage
- Type changed from 'number' to 'object'
- Format changed from 'double' to ''
- Nullable changed from true to false
- AdditionalProperties changed
- Schema added
GET /api/users/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [notifications_enabled]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: notifications_enabled
POST /api/users/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: notifications_enabled
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: notifications_enabled
GET /api/users/me/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [notifications_enabled]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: notifications_enabled
GET /api/users/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [notifications_enabled]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: notifications_enabled
PATCH /api/users/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: notifications_enabled
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: notifications_enabled
PUT /api/users/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: notifications_enabled
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: notifications_enabled
OpenAPI schema diff - 7.6.1
For version 7.6.1
No changes
OpenAPI schema diff - 7.6.2
For version 7.6.2
New Endpoints: 7
POST /api/openstack-ports/{uuid}/update_security_groups/
GET /api/proposal-protected-calls/{uuid}/resource_templates/
POST /api/proposal-protected-calls/{uuid}/resource_templates/
DELETE /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
GET /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
PATCH /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
PUT /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
Deleted Endpoints: None
Modified Endpoints: 51
GET /api/customers/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [max_service_accounts]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: max_service_accounts
POST /api/customers/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: max_service_accounts
GET /api/customers/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [max_service_accounts]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: max_service_accounts
PATCH /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: max_service_accounts
PUT /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: max_service_accounts
POST /api/marketplace-component-usages/set_usage/
- Responses changed
- New response: 201
- Deleted response: 200
POST /api/marketplace-component-usages/{uuid}/set_user_usage/
- Responses changed
- New response: 201
- Deleted response: 200
GET /api/marketplace-provider-offerings/{uuid}/list_customer_projects/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: max_service_accounts
GET /api/marketplace-service-providers/{service_provider_uuid}/projects/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [max_service_accounts]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: max_service_accounts
GET /api/openstack-backups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: security_groups
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
GET /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: security_groups
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
PATCH /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: security_groups
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
PUT /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: security_groups
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
POST /api/openstack-backups/{uuid}/restore/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
GET /api/openstack-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
GET /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
PATCH /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
PUT /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
POST /api/openstack-instances/{uuid}/backup/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_ports
- Items changed
- Properties changed
- New property: security_groups
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
GET /api/openstack-instances/{uuid}/ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: security_groups
GET /api/openstack-ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: url
POST /api/openstack-ports/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: url
GET /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: url
PATCH /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: url
PUT /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: url
GET /api/openstack-routers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
GET /api/openstack-routers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- New property: security_groups
POST /api/openstack-tenants/{uuid}/create_security_group/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: rules
- Properties changed
- Deleted property: rules
GET /api/override-settings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND
POST /api/override-settings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND
GET /api/projects/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [max_service_accounts]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: max_service_accounts
POST /api/projects/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: max_service_accounts
GET /api/projects/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [max_service_accounts]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: max_service_accounts
PATCH /api/projects/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: max_service_accounts
PUT /api/projects/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: max_service_accounts
POST /api/projects/{uuid}/move_project/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: max_service_accounts
GET /api/proposal-proposals/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: call_resource_template
- New required property: call_resource_template_name
- Properties changed
- New property: call_resource_template
- New property: call_resource_template_name
POST /api/proposal-proposals/{uuid}/resources/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: requested_offering_uuid
- Properties changed
- New property: call_resource_template_uuid
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: call_resource_template
- New required property: call_resource_template_name
- Properties changed
- New property: call_resource_template
- New property: call_resource_template_name
GET /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: call_resource_template
- New required property: call_resource_template_name
- Properties changed
- New property: call_resource_template
- New property: call_resource_template_name
PATCH /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: call_resource_template_uuid
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: call_resource_template
- New required property: call_resource_template_name
- Properties changed
- New property: call_resource_template
- New property: call_resource_template_name
PUT /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: requested_offering_uuid
- Properties changed
- New property: call_resource_template_uuid
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: call_resource_template
- New required property: call_resource_template_name
- Properties changed
- New property: call_resource_template
- New property: call_resource_template_name
GET /api/proposal-protected-calls/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [fixed_duration_in_days resource_templates]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: fixed_duration_in_days
- New property: resource_templates
POST /api/proposal-protected-calls/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- New property: resource_templates
GET /api/proposal-protected-calls/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [fixed_duration_in_days resource_templates]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- New property: resource_templates
PATCH /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- New property: resource_templates
PUT /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- New property: resource_templates
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- New property: resource_templates
GET /api/proposal-public-calls/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [fixed_duration_in_days resource_templates]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: fixed_duration_in_days
- New property: resource_templates
GET /api/proposal-public-calls/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [fixed_duration_in_days resource_templates]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: fixed_duration_in_days
- New property: resource_templates
GET /api/proposal-requested-resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: call_resource_template
- New required property: call_resource_template_name
- Properties changed
- New property: call_resource_template
- New property: call_resource_template_name
GET /api/proposal-requested-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: call_resource_template
- New required property: call_resource_template_name
- Properties changed
- New property: call_resource_template
- New property: call_resource_template_name
OpenAPI schema diff - 7.6.3
For version 7.6.3
No changes
OpenAPI schema diff - 7.6.4
For version 7.6.4
New Endpoints: None
Deleted Endpoints: 1
POST /api/openstack-migrations/{uuid}/run/
Modified Endpoints: 42
GET /api/booking-resources/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_slug project_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: customer_slug
- New property: project_slug
GET /api/booking-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_slug project_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_slug
- New property: project_slug
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_slug
- New property: project_slug
GET /api/marketplace-provider-offerings/{uuid}/list_customer_users/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: token_expires_at
GET /api/marketplace-provider-resources/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_slug project_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: customer_slug
- New property: project_slug
GET /api/marketplace-provider-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_slug project_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_slug
- New property: project_slug
GET /api/marketplace-provider-resources/{uuid}/details/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_slug project_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_slug
- New property: project_slug
POST /api/marketplace-provider-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_slug
- New property: project_slug
POST /api/marketplace-provider-resources/{uuid}/refresh_last_sync/
- Description changed from '' to 'Refresh the last sync time for a resource.'
- Request body changed
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-resources/{uuid}/set_as_ok/
- Description changed from '' to 'Set the resource as OK.'
- Request body changed
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_slug
- New property: project_slug
GET /api/marketplace-resources/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_slug project_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: customer_slug
- New property: project_slug
GET /api/marketplace-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_slug project_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_slug
- New property: project_slug
GET /api/marketplace-resources/{uuid}/details/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [customer_slug project_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_slug
- New property: project_slug
POST /api/marketplace-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: customer_slug
- New property: project_slug
POST /api/openstack-tenants/{uuid}/create_security_group/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: rules
- Properties changed
- New property: rules
GET /api/promotions-campaigns/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: customer_slug
- New property: project_slug
GET /api/proposal-protected-calls/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [reviewer_identity_visible_to_submitters reviews_visible_to_submitters]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
POST /api/proposal-protected-calls/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
GET /api/proposal-protected-calls/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [reviewer_identity_visible_to_submitters reviews_visible_to_submitters]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
PATCH /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
PUT /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
GET /api/proposal-protected-calls/{uuid}/rounds/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Description changed from '' to 'Return serialized reviews based on user permissions and visibility settings.
- Staff, call managers, and reviewers see all reviews.
- Submitters see submitted reviews if visibility is enabled.' - Items changed - Type changed from 'object' to '' - Required changed - Deleted required property: call_name - Deleted required property: call_uuid - Deleted required property: proposal - Deleted required property: proposal_name - Deleted required property: proposal_uuid - Deleted required property: review_end_date - Deleted required property: reviewer - Deleted required property: reviewer_full_name - Deleted required property: reviewer_uuid - Deleted required property: round_cutoff_time - Deleted required property: round_name - Deleted required property: round_start_time - Deleted required property: round_uuid - Deleted required property: state - Deleted required property: url - Deleted required property: uuid - Properties changed - Deleted property: call_name - Deleted property: call_uuid - Deleted property: comment_project_description - Deleted property: comment_project_duration - Deleted property: comment_project_has_civilian_purpose - Deleted property: comment_project_is_confidential - Deleted property: comment_project_summary - Deleted property: comment_project_supporting_documentation - Deleted property: comment_project_title - Deleted property: comment_resource_requests - Deleted property: comment_team - Deleted property: proposal - Deleted property: proposal_name - Deleted property: proposal_uuid - Deleted property: review_end_date - Deleted property: reviewer - Deleted property: reviewer_full_name - Deleted property: reviewer_uuid - Deleted property: round_cutoff_time - Deleted property: round_name - Deleted property: round_start_time - Deleted property: round_uuid - Deleted property: state - Deleted property: summary_private_comment - Deleted property: summary_public_comment - Deleted property: summary_score - Deleted property: url - Deleted property: uuid
POST /api/proposal-protected-calls/{uuid}/rounds/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Description changed from '' to 'Return serialized reviews based on user permissions and visibility settings.
- Staff, call managers, and reviewers see all reviews.
- Submitters see submitted reviews if visibility is enabled.' - Items changed - Type changed from 'object' to '' - Required changed - Deleted required property: call_name - Deleted required property: call_uuid - Deleted required property: proposal - Deleted required property: proposal_name - Deleted required property: proposal_uuid - Deleted required property: review_end_date - Deleted required property: reviewer - Deleted required property: reviewer_full_name - Deleted required property: reviewer_uuid - Deleted required property: round_cutoff_time - Deleted required property: round_name - Deleted required property: round_start_time - Deleted required property: round_uuid - Deleted required property: state - Deleted required property: url - Deleted required property: uuid - Properties changed - Deleted property: call_name - Deleted property: call_uuid - Deleted property: comment_project_description - Deleted property: comment_project_duration - Deleted property: comment_project_has_civilian_purpose - Deleted property: comment_project_is_confidential - Deleted property: comment_project_summary - Deleted property: comment_project_supporting_documentation - Deleted property: comment_project_title - Deleted property: comment_resource_requests - Deleted property: comment_team - Deleted property: proposal - Deleted property: proposal_name - Deleted property: proposal_uuid - Deleted property: review_end_date - Deleted property: reviewer - Deleted property: reviewer_full_name - Deleted property: reviewer_uuid - Deleted property: round_cutoff_time - Deleted property: round_name - Deleted property: round_start_time - Deleted property: round_uuid - Deleted property: state - Deleted property: summary_private_comment - Deleted property: summary_public_comment - Deleted property: summary_score - Deleted property: url - Deleted property: uuid
GET /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Description changed from '' to 'Return serialized reviews based on user permissions and visibility settings.
- Staff, call managers, and reviewers see all reviews.
- Submitters see submitted reviews if visibility is enabled.' - Items changed - Type changed from 'object' to '' - Required changed - Deleted required property: call_name - Deleted required property: call_uuid - Deleted required property: proposal - Deleted required property: proposal_name - Deleted required property: proposal_uuid - Deleted required property: review_end_date - Deleted required property: reviewer - Deleted required property: reviewer_full_name - Deleted required property: reviewer_uuid - Deleted required property: round_cutoff_time - Deleted required property: round_name - Deleted required property: round_start_time - Deleted required property: round_uuid - Deleted required property: state - Deleted required property: url - Deleted required property: uuid - Properties changed - Deleted property: call_name - Deleted property: call_uuid - Deleted property: comment_project_description - Deleted property: comment_project_duration - Deleted property: comment_project_has_civilian_purpose - Deleted property: comment_project_is_confidential - Deleted property: comment_project_summary - Deleted property: comment_project_supporting_documentation - Deleted property: comment_project_title - Deleted property: comment_resource_requests - Deleted property: comment_team - Deleted property: proposal - Deleted property: proposal_name - Deleted property: proposal_uuid - Deleted property: review_end_date - Deleted property: reviewer - Deleted property: reviewer_full_name - Deleted property: reviewer_uuid - Deleted property: round_cutoff_time - Deleted property: round_name - Deleted property: round_start_time - Deleted property: round_uuid - Deleted property: state - Deleted property: summary_private_comment - Deleted property: summary_public_comment - Deleted property: summary_score - Deleted property: url - Deleted property: uuid
PATCH /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Description changed from '' to 'Return serialized reviews based on user permissions and visibility settings.
- Staff, call managers, and reviewers see all reviews.
- Submitters see submitted reviews if visibility is enabled.' - Items changed - Type changed from 'object' to '' - Required changed - Deleted required property: call_name - Deleted required property: call_uuid - Deleted required property: proposal - Deleted required property: proposal_name - Deleted required property: proposal_uuid - Deleted required property: review_end_date - Deleted required property: reviewer - Deleted required property: reviewer_full_name - Deleted required property: reviewer_uuid - Deleted required property: round_cutoff_time - Deleted required property: round_name - Deleted required property: round_start_time - Deleted required property: round_uuid - Deleted required property: state - Deleted required property: url - Deleted required property: uuid - Properties changed - Deleted property: call_name - Deleted property: call_uuid - Deleted property: comment_project_description - Deleted property: comment_project_duration - Deleted property: comment_project_has_civilian_purpose - Deleted property: comment_project_is_confidential - Deleted property: comment_project_summary - Deleted property: comment_project_supporting_documentation - Deleted property: comment_project_title - Deleted property: comment_resource_requests - Deleted property: comment_team - Deleted property: proposal - Deleted property: proposal_name - Deleted property: proposal_uuid - Deleted property: review_end_date - Deleted property: reviewer - Deleted property: reviewer_full_name - Deleted property: reviewer_uuid - Deleted property: round_cutoff_time - Deleted property: round_name - Deleted property: round_start_time - Deleted property: round_uuid - Deleted property: state - Deleted property: summary_private_comment - Deleted property: summary_public_comment - Deleted property: summary_score - Deleted property: url - Deleted property: uuid
PUT /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: proposals
- Items changed
- Properties changed
- Modified property: reviews
- Description changed from '' to 'Return serialized reviews based on user permissions and visibility settings.
- Staff, call managers, and reviewers see all reviews.
- Submitters see submitted reviews if visibility is enabled.' - Items changed - Type changed from 'object' to '' - Required changed - Deleted required property: call_name - Deleted required property: call_uuid - Deleted required property: proposal - Deleted required property: proposal_name - Deleted required property: proposal_uuid - Deleted required property: review_end_date - Deleted required property: reviewer - Deleted required property: reviewer_full_name - Deleted required property: reviewer_uuid - Deleted required property: round_cutoff_time - Deleted required property: round_name - Deleted required property: round_start_time - Deleted required property: round_uuid - Deleted required property: state - Deleted required property: url - Deleted required property: uuid - Properties changed - Deleted property: call_name - Deleted property: call_uuid - Deleted property: comment_project_description - Deleted property: comment_project_duration - Deleted property: comment_project_has_civilian_purpose - Deleted property: comment_project_is_confidential - Deleted property: comment_project_summary - Deleted property: comment_project_supporting_documentation - Deleted property: comment_project_title - Deleted property: comment_resource_requests - Deleted property: comment_team - Deleted property: proposal - Deleted property: proposal_name - Deleted property: proposal_uuid - Deleted property: review_end_date - Deleted property: reviewer - Deleted property: reviewer_full_name - Deleted property: reviewer_uuid - Deleted property: round_cutoff_time - Deleted property: round_name - Deleted property: round_start_time - Deleted property: round_uuid - Deleted property: state - Deleted property: summary_private_comment - Deleted property: summary_public_comment - Deleted property: summary_score - Deleted property: url - Deleted property: uuid
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
GET /api/proposal-public-calls/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [reviewer_identity_visible_to_submitters reviews_visible_to_submitters]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
GET /api/proposal-public-calls/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [reviewer_identity_visible_to_submitters reviews_visible_to_submitters]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: reviewer_identity_visible_to_submitters
- New property: reviews_visible_to_submitters
GET /api/proposal-reviews/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: anonymous_reviewer_name
- Properties changed
- New property: anonymous_reviewer_name
POST /api/proposal-reviews/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: anonymous_reviewer_name
- Properties changed
- New property: anonymous_reviewer_name
GET /api/proposal-reviews/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: anonymous_reviewer_name
- Properties changed
- New property: anonymous_reviewer_name
PATCH /api/proposal-reviews/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: anonymous_reviewer_name
- Properties changed
- New property: anonymous_reviewer_name
PUT /api/proposal-reviews/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: anonymous_reviewer_name
- Properties changed
- New property: anonymous_reviewer_name
GET /api/user-invitations/
- Modified query param: o
- Schema changed
- Items changed
- New enum values: [-created_by created_by]
GET /api/users/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [token_expires_at]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: token_expires_at
POST /api/users/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: token_expires_at
GET /api/users/me/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [token_expires_at]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: token_expires_at
GET /api/users/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [token_expires_at]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: token_expires_at
PATCH /api/users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: token_expires_at
PUT /api/users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: token_expires_at
OpenAPI schema diff - 7.6.5
For version 7.6.5
New Endpoints: 17
GET /api/autoprovisioning-rule-plans/
POST /api/autoprovisioning-rule-plans/
DELETE /api/autoprovisioning-rule-plans/{uuid}/
GET /api/autoprovisioning-rule-plans/{uuid}/
PATCH /api/autoprovisioning-rule-plans/{uuid}/
PUT /api/autoprovisioning-rule-plans/{uuid}/
GET /api/autoprovisioning-rules/
POST /api/autoprovisioning-rules/
DELETE /api/autoprovisioning-rules/{uuid}/
GET /api/autoprovisioning-rules/{uuid}/
PATCH /api/autoprovisioning-rules/{uuid}/
PUT /api/autoprovisioning-rules/{uuid}/
GET /api/openstack-marketplace-tenants/
GET /api/openstack-marketplace-tenants/{uuid}/
POST /api/openstack-marketplace-tenants/{uuid}/create_image/
POST /api/openstack-marketplace-tenants/{uuid}/upload_image_data/{image_id}/
POST /api/projects/{uuid}/sync_user_roles/
Deleted Endpoints: None
Modified Endpoints: 1168
POST /api-auth/logout/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api-auth/password/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api-auth/saml2/providers/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/access-subnets/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/access-subnets/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/access-subnets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/access-subnets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/access-subnets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/access-subnets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/admin-announcements/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/admin-announcements/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/admin-announcements/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/admin-announcements/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/admin-announcements/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/admin-announcements/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/auth-tokens/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/auth-tokens/{user_id}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/auth-tokens/{user_id}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/auth-valimo/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/auth-valimo/result/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-images/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-images/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-instances/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-instances/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/aws-instances/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-instances/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/aws-instances/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/aws-instances/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-instances/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-instances/{uuid}/resize/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-instances/{uuid}/restart/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-instances/{uuid}/start/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-instances/{uuid}/stop/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-instances/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-regions/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-regions/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-sizes/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-sizes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-volumes/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-volumes/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/aws-volumes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/aws-volumes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/aws-volumes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/aws-volumes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-volumes/{uuid}/attach/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-volumes/{uuid}/detach/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-volumes/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/aws-volumes/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-images/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-images/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-locations/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-locations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-public-ips/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-public-ips/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/azure-public-ips/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-public-ips/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/azure-public-ips/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/azure-public-ips/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-public-ips/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-public-ips/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-resource-groups/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-resource-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-sizes/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-sizes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-sql-databases/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-sql-databases/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/azure-sql-databases/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-sql-databases/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/azure-sql-databases/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/azure-sql-databases/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-sql-databases/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-sql-databases/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-sql-servers/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-sql-servers/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/azure-sql-servers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-sql-servers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/azure-sql-servers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/azure-sql-servers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-sql-servers/{uuid}/create_database/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-sql-servers/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-sql-servers/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-virtualmachines/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-virtualmachines/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/azure-virtualmachines/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/azure-virtualmachines/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/azure-virtualmachines/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/azure-virtualmachines/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-virtualmachines/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-virtualmachines/{uuid}/restart/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-virtualmachines/{uuid}/start/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-virtualmachines/{uuid}/stop/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/azure-virtualmachines/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/billing-total-cost/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/booking-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/booking-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/booking-offerings/{uuid}/google_calendar_sync/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/booking-offerings/{uuid}/share_google_calendar/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/booking-offerings/{uuid}/unshare_google_calendar/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/booking-resources/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/booking-resources/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/booking-resources/{uuid}/accept/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/booking-resources/{uuid}/reject/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/broadcast-message-templates/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/broadcast-message-templates/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/broadcast-message-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/broadcast-message-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/broadcast-message-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/broadcast-message-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/broadcast-messages/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/broadcast-messages/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/broadcast-messages/recipients/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/broadcast-messages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/broadcast-messages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/broadcast-messages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/broadcast-messages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/broadcast-messages/{uuid}/send/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/call-managing-organisations/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/call-managing-organisations/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/call-managing-organisations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/call-managing-organisations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/call-managing-organisations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/call-managing-organisations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/call-managing-organisations/{uuid}/add_user/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/call-managing-organisations/{uuid}/delete_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/call-managing-organisations/{uuid}/list_users/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/call-managing-organisations/{uuid}/stats/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/call-managing-organisations/{uuid}/update_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/call-rounds/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/call-rounds/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/call-rounds/{uuid}/reviewers/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/celery-stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/component-user-usage-limits/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/component-user-usage-limits/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/component-user-usage-limits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/component-user-usage-limits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/component-user-usage-limits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/component-user-usage-limits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/configuration/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customer-credits/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customer-credits/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/customer-credits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customer-credits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/customer-credits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/customer-credits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customer-credits/{uuid}/apply_compensations/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customer-credits/{uuid}/clear_compensations/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customer-credits/{uuid}/consumptions/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customer-permissions-reviews/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customer-permissions-reviews/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customer-permissions-reviews/{uuid}/close/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customer-quotas/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customers/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customers/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customers/countries/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customers/{customer_uuid}/marketplace-checklists/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customers/{customer_uuid}/marketplace-checklists/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customers/{customer_uuid}/marketplace-checklists/{checklist_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/customers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/customers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/customers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customers/{uuid}/add_user/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customers/{uuid}/delete_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customers/{uuid}/list_users/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customers/{uuid}/stats/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customers/{uuid}/update_organization_groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/customers/{uuid}/update_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/customers/{uuid}/users/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [role]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: role
- Modified property: expiration_time
- Nullable changed from false to true
- Modified property: role_name
- Nullable changed from false to true
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/daily-quotas/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/database-stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/digitalocean-droplets/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/digitalocean-droplets/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/digitalocean-droplets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/digitalocean-droplets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/digitalocean-droplets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/digitalocean-droplets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/digitalocean-droplets/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/digitalocean-droplets/{uuid}/resize/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/digitalocean-droplets/{uuid}/restart/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/digitalocean-droplets/{uuid}/start/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/digitalocean-droplets/{uuid}/stop/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/digitalocean-droplets/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/digitalocean-images/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/digitalocean-images/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/digitalocean-regions/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/digitalocean-regions/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/digitalocean-sizes/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/digitalocean-sizes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/email-logs/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/email-logs/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/event-subscriptions/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/event-subscriptions/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/event-subscriptions/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/event-subscriptions/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/events-stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/events/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/events/count/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/events/event_groups/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/events/scope_types/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/events/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/feature-values/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/financial-reports/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/financial-reports/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/freeipa-profiles/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/freeipa-profiles/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/freeipa-profiles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/freeipa-profiles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/freeipa-profiles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/freeipa-profiles/{uuid}/update_ssh_keys/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/google-auth/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/google-auth/callback/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/google-auth/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/google-auth/{uuid}/authorize/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/hooks-email/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/hooks-email/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/hooks-email/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/hooks-email/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/hooks-email/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/hooks-email/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/hooks-web/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/hooks-web/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/hooks-web/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/hooks-web/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/hooks-web/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/hooks-web/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/hooks/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/identity-providers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: extra_scope
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/identity-providers/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extra_scope
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extra_scope
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/identity-providers/{provider}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/identity-providers/{provider}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extra_scope
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/identity-providers/{provider}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extra_scope
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extra_scope
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/identity-providers/{provider}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extra_scope
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: extra_scope
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoice-items/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoice-items/costs/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoice-items/customer_costs_for_period/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoice-items/project_costs_for_period/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoice-items/total_price/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/invoice-items/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoice-items/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/invoice-items/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/invoice-items/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoice-items/{uuid}/consumptions/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/invoice-items/{uuid}/create_compensation/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/invoice-items/{uuid}/migrate_to/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/invoice/send-financial-report-by-mail/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoices/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoices/growth/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoices/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoices/{uuid}/items/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/invoices/{uuid}/paid/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/invoices/{uuid}/send_notification/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/invoices/{uuid}/set_backend_id/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/invoices/{uuid}/set_payment_url/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/invoices/{uuid}/set_reference_number/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/invoices/{uuid}/stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/keycloak-groups/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/keycloak-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/keycloak-user-group-memberships/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/keycloak-user-group-memberships/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/keycloak-user-group-memberships/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/keycloak-user-group-memberships/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/keycloak-user-group-memberships/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/keycloak-user-group-memberships/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/keys/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/keys/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/keys/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/keys/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/lexis-links/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/lexis-links/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/lexis-links/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/lexis-links/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/lexis-links/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/lexis-links/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-bookings/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-categories/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-categories/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-categories/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-categories/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-categories/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-categories/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-columns/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-category-columns/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-category-columns/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-columns/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-category-columns/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-category-columns/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-component-usages/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-component-usages/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-components/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-category-components/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-category-components/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-components/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-category-components/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-category-components/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-category-groups/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-category-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-category-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-category-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-help-articles/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-category-help-articles/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-category-help-articles/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-category-help-articles/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-category-help-articles/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-category-help-articles/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-checklists-categories/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-checklists-categories/{category_uuid}/checklists/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-checklists-categories/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-checklists/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-checklists/{checklist_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-checklists/{checklist_uuid}/answers/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-checklists/{checklist_uuid}/answers/submit/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-checklists/{checklist_uuid}/questions/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-checklists/{checklist_uuid}/stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-checklists/{checklist_uuid}/user/{user_uuid}/answers/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-component-usages/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-component-usages/set_usage/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-component-usages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-component-usages/{uuid}/set_user_usage/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-component-user-usages/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-component-user-usages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-customer-estimated-cost-policies/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-customer-estimated-cost-policies/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-customer-estimated-cost-policies/actions/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-customer-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-customer-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-customer-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-customer-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-customer-service-accounts/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-customer-service-accounts/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-customer-service-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-customer-service-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-customer-service-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-customer-service-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-customer-service-accounts/{uuid}/rotate_api_key/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-global-categories/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-integration-statuses/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-integration-statuses/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-estimated-cost-policies/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-offering-estimated-cost-policies/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-estimated-cost-policies/actions/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-offering-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-offering-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-offering-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-files/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-offering-files/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-offering-files/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-files/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-permissions-log/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: role
- Format changed from '' to 'uri'
- ReadOnly changed from true to false
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-permissions-log/{id}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: role
- Format changed from '' to 'uri'
- ReadOnly changed from true to false
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-permissions/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: role
- Format changed from '' to 'uri'
- ReadOnly changed from true to false
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-permissions/{id}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: role
- Format changed from '' to 'uri'
- ReadOnly changed from true to false
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-referrals/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-referrals/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-usage-policies/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-offering-usage-policies/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-usage-policies/actions/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-offering-usage-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-usage-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-offering-usage-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-offering-usage-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-user-roles/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-offering-user-roles/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-offering-user-roles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-user-roles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-offering-user-roles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-offering-user-roles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-users/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: offering_uuid
- ReadOnly changed from true to false
- Modified property: user_uuid
- ReadOnly changed from true to false
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-offering-users/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: offering
- Deleted required property: user
- Properties changed
- New property: offering_uuid
- New property: user_uuid
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_uuid
- ReadOnly changed from true to false
- Modified property: user_uuid
- ReadOnly changed from true to false
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-offering-users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-offering-users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_uuid
- ReadOnly changed from true to false
- Modified property: user_uuid
- ReadOnly changed from true to false
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-offering-users/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_uuid
- New property: user_uuid
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_uuid
- ReadOnly changed from true to false
- Modified property: user_uuid
- ReadOnly changed from true to false
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-offering-users/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: offering
- Deleted required property: user
- Properties changed
- New property: offering_uuid
- New property: user_uuid
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_uuid
- ReadOnly changed from true to false
- Modified property: user_uuid
- ReadOnly changed from true to false
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-offering-users/{uuid}/update_restricted/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-orders/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: output
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: output
- Properties changed
- Modified property: output
- ReadOnly changed from false to true
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-orders/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-orders/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/{uuid}/approve_by_consumer/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/{uuid}/approve_by_provider/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/{uuid}/cancel/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/{uuid}/reject_by_consumer/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/{uuid}/reject_by_provider/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/{uuid}/set_state_done/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/{uuid}/set_state_erred/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/{uuid}/set_state_executing/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-orders/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-plan-components/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-plan-components/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-plans/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-plans/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-plans/usage_stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-plans/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-plans/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-plans/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-plans/{uuid}/archive/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-plans/{uuid}/delete_organization_groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-plans/{uuid}/update_organization_groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-plans/{uuid}/update_prices/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-plans/{uuid}/update_quotas/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-project-estimated-cost-policies/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-project-estimated-cost-policies/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-project-estimated-cost-policies/actions/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-project-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-project-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-project-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-project-estimated-cost-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-project-service-accounts/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-project-service-accounts/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-project-service-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-project-service-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-project-service-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-project-service-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-project-service-accounts/{uuid}/rotate_api_key/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-project-update-requests/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-project-update-requests/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-project-update-requests/{uuid}/approve/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-project-update-requests/{uuid}/reject/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/
- New query param: uuid_list
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/groups/
- New query param: uuid_list
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-provider-offerings/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/activate/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/add_endpoint/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/add_user/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/archive/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/component_stats/
- New query param: uuid_list
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/costs/
- New query param: uuid_list
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/create_offering_component/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/customers/
- New query param: uuid_list
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/delete_endpoint/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/delete_image/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/delete_organization_groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/delete_thumbnail/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/delete_user/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/draft/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/glauth_users_config/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/importable_resources/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/list_customer_projects/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/list_customer_users/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/list_users/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/move_offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/orders/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/orders/{order_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/pause/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/remove_offering_component/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/set_backend_metadata/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/sync/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/unpause/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_attributes/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_description/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_location/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_offering_component/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_options/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_organization_groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_overview/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_resource_options/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_thumbnail/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-offerings/{uuid}/update_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-resources/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-resources/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-provider-resources/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-provider-resources/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-resources/{uuid}/details/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-resources/{uuid}/glauth_users_config/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/move_resource/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-resources/{uuid}/offering_for_subresources/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-resources/{uuid}/plan_periods/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/refresh_last_sync/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/set_as_erred/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/set_as_ok/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/set_backend_id/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/set_backend_metadata/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_staff/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/set_limits/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/set_slug/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/submit_report/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-provider-resources/{uuid}/team/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/terminate/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-provider-resources/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-public-api/check_signature/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-public-api/set_usage/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-public-offerings/
- New query param: uuid_list
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-public-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-public-offerings/{uuid}/plans/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-public-offerings/{uuid}/plans/{plan_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-related-customers/{customer_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-remote-synchronisations/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-remote-synchronisations/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-remote-synchronisations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-remote-synchronisations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-remote-synchronisations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-remote-synchronisations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-remote-synchronisations/{uuid}/run_synchronisation/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resource-offerings/{category_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resource-users/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resource-users/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-resource-users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resource-users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resources/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resources/suggest_name/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resources/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-resources/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-resources/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resources/{uuid}/details/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resources/{uuid}/glauth_users_config/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resources/{uuid}/move_resource/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resources/{uuid}/offering_for_subresources/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resources/{uuid}/plan_periods/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resources/{uuid}/set_end_date_by_staff/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resources/{uuid}/set_slug/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resources/{uuid}/switch_plan/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-resources/{uuid}/team/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resources/{uuid}/terminate/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resources/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resources/{uuid}/update_limits/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-resources/{uuid}/update_options/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-robot-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-robot-accounts/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-robot-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-robot-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-robot-accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-runtime-states/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-screenshots/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-screenshots/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-screenshots/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-screenshots/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-screenshots/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-screenshots/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-script-async-dry-run/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-script-async-dry-run/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-script-dry-run/{uuid}/run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: managed_rancher_tenant_max_cpu
- New property: managed_rancher_tenant_max_disk
- New property: managed_rancher_tenant_max_ram
- Deleted property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-script-sync-resource/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-sections/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-sections/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-sections/{key}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-sections/{key}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-sections/{key}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-sections/{key}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-service-providers/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{service_provider_uuid}/customer_projects/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{service_provider_uuid}/customers/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{service_provider_uuid}/keys/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- New query param: uuid_list
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: secret_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedSecretOptions
- Properties changed
- New property: managed_rancher_load_balancer_cloud_init_template
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{service_provider_uuid}/project_permissions/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{service_provider_uuid}/projects/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{service_provider_uuid}/user_customers/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{service_provider_uuid}/users/
- New query param: username_list
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/marketplace-service-providers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/marketplace-service-providers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/marketplace-service-providers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-service-providers/{uuid}/add_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{uuid}/api_secret_code/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-service-providers/{uuid}/api_secret_code/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-service-providers/{uuid}/delete_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{uuid}/list_users/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{uuid}/revenue/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{uuid}/robot_account_customers/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{uuid}/robot_account_projects/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-service-providers/{uuid}/set_offerings_username/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-service-providers/{uuid}/stat/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/marketplace-service-providers/{uuid}/update_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/component_usages/
- OperationID changed from 'marketplace_stats_component_usages_retrieve' to 'marketplace_stats_component_usages_list'
- New query param: page
- New query param: page_size
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/component_usages_per_month/
- OperationID changed from 'marketplace_stats_component_usages_per_month_retrieve' to 'marketplace_stats_component_usages_per_month_list'
- New query param: page
- New query param: page_size
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/component_usages_per_project/
- OperationID changed from 'marketplace_stats_component_usages_per_project_retrieve' to 'marketplace_stats_component_usages_per_project_list'
- New query param: page
- New query param: page_size
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/count_active_resources_grouped_by_offering/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/count_active_resources_grouped_by_offering_country/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/count_active_resources_grouped_by_organization_group/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/count_projects_grouped_by_provider_and_industry_flag/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/count_projects_grouped_by_provider_and_oecd/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/count_projects_of_service_providers/
- OperationID changed from 'marketplace_stats_count_projects_of_service_providers_retrieve' to 'marketplace_stats_count_projects_of_service_providers_list'
- New query param: page
- New query param: page_size
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/count_projects_of_service_providers_grouped_by_oecd/
- OperationID changed from 'marketplace_stats_count_projects_of_service_providers_grouped_by_oecd_retrieve' to 'marketplace_stats_count_projects_of_service_providers_grouped_by_oecd_list'
- New query param: page
- New query param: page_size
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/count_unique_users_connected_with_active_resources_of_service_provider/
- OperationID changed from 'marketplace_stats_count_unique_users_connected_with_active_resources_of_service_provider_retrieve' to 'marketplace_stats_count_unique_users_connected_with_active_resources_of_service_provider_list'
- New query param: page
- New query param: page_size
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/count_users_of_service_providers/
- OperationID changed from 'marketplace_stats_count_users_of_service_providers_retrieve' to 'marketplace_stats_count_users_of_service_providers_list'
- New query param: page
- New query param: page_size
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/customer_member_count/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/offerings_counter_stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/organization_project_count/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/organization_resource_count/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/projects_limits_grouped_by_industry_flag/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/projects_limits_grouped_by_oecd/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/projects_usages_grouped_by_industry_flag/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/projects_usages_grouped_by_oecd/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/resources_limits/
- OperationID changed from 'marketplace_stats_resources_limits_retrieve' to 'marketplace_stats_resources_limits_list'
- New query param: page
- New query param: page_size
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/marketplace-stats/total_cost_of_active_resources_per_offering/
- OperationID changed from 'marketplace_stats_total_cost_of_active_resources_per_offering_retrieve' to 'marketplace_stats_total_cost_of_active_resources_per_offering_list'
- New query param: page
- New query param: page_size
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/media/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/notification-messages-templates/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/notification-messages-templates/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/notification-messages-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/notification-messages-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/notification-messages-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/notification-messages-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/notification-messages-templates/{uuid}/override/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/notification-messages/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/notification-messages/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/notification-messages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/notification-messages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/notification-messages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/notification-messages/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/notification-messages/{uuid}/disable/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/notification-messages/{uuid}/enable/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-backups/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-backups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-backups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-backups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-backups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-backups/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-backups/{uuid}/restore/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-backups/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-flavors/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-flavors/usage_stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-flavors/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-floating-ips/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-floating-ips/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-floating-ips/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-floating-ips/{uuid}/attach_to_port/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-floating-ips/{uuid}/detach_from_port/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-floating-ips/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-floating-ips/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-floating-ips/{uuid}/update_description/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-images/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-images/usage_stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-images/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-instance-availability-zones/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-instance-availability-zones/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-instances/
- New query param: query
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-instances/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-instances/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-instances/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/backup/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/change_flavor/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-instances/{uuid}/console/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-instances/{uuid}/console_log/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-instances/{uuid}/floating_ips/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-instances/{uuid}/ports/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/restart/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/start/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/stop/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/update_allowed_address_pairs/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/update_floating_ips/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/update_ports/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-instances/{uuid}/update_security_groups/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-migrations/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-migrations/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-migrations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-migrations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-migrations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-migrations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-network-rbac-policies/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-network-rbac-policies/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-networks/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-networks/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-networks/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-networks/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-networks/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-networks/{uuid}/create_subnet/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-networks/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-networks/{uuid}/rbac_policy_create/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-networks/{uuid}/rbac_policy_delete/{rbac_policy_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-networks/{uuid}/set_mtu/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-networks/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-ports/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-ports/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-ports/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-ports/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-ports/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-ports/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-ports/{uuid}/disable_port/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-ports/{uuid}/disable_port_security/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-ports/{uuid}/enable_port/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-ports/{uuid}/enable_port_security/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-ports/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-ports/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-ports/{uuid}/update_port_ip/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-ports/{uuid}/update_security_groups/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-routers/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-routers/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-routers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-routers/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-routers/{uuid}/add_router_interface/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-routers/{uuid}/remove_router_interface/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-routers/{uuid}/set_routes/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-security-groups/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-security-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-security-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-security-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-security-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-security-groups/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-security-groups/{uuid}/set_rules/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-security-groups/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-server-groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-server-groups/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-server-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-server-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-server-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-server-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-server-groups/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-server-groups/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-snapshots/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-snapshots/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-snapshots/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-snapshots/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-snapshots/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-snapshots/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-snapshots/{uuid}/restorations/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-snapshots/{uuid}/restore/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-snapshots/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-subnets/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-subnets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-subnets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-subnets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-subnets/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-subnets/{uuid}/connect/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-subnets/{uuid}/disconnect/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-subnets/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-subnets/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-tenants/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/openstack-tenants/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-tenants/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-tenants/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-tenants/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-tenants/{uuid}/backend_instances/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-tenants/{uuid}/backend_volumes/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/change_password/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/create_floating_ip/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/create_network/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/create_security_group/
- Responses changed
- New response: 201
- Deleted response: 200
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/create_server_group/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/pull_floating_ips/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/pull_quotas/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/pull_security_groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/pull_server_groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/set_quotas/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-tenants/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-volume-availability-zones/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-volume-availability-zones/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-volume-types/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-volume-types/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-volumes/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/openstack-volumes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/openstack-volumes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/openstack-volumes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-volumes/{uuid}/attach/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-volumes/{uuid}/detach/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-volumes/{uuid}/extend/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-volumes/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-volumes/{uuid}/retype/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-volumes/{uuid}/snapshot/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/openstack-volumes/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/organization-groups/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/organization-groups/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/organization-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/organization-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/organization-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/organization-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/override-settings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: OIDC_AUTH_URL
- New property: OIDC_CACHE_TIMEOUT
- New property: OIDC_CLIENT_ID
- New property: OIDC_CLIENT_SECRET
- New property: OIDC_INTROSPECTION_URL
- New property: OIDC_USER_FIELD
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/override-settings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: OIDC_AUTH_URL
- New property: OIDC_CACHE_TIMEOUT
- New property: OIDC_CLIENT_ID
- New property: OIDC_CLIENT_SECRET
- New property: OIDC_INTROSPECTION_URL
- New property: OIDC_USER_FIELD
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/payment-profiles/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/payment-profiles/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/payment-profiles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/payment-profiles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/payment-profiles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/payment-profiles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/payment-profiles/{uuid}/enable/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/payments/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/payments/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/payments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/payments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/payments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/payments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/payments/{uuid}/link_to_invoice/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/payments/{uuid}/unlink_from_invoice/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/project-credits/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/project-credits/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/project-credits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/project-credits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/project-credits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/project-credits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/project-quotas/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/project-types/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/project-types/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/projects/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/projects/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/projects/{project_uuid}/marketplace-checklists/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/projects/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/projects/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/projects/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/projects/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/projects/{uuid}/add_user/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/projects/{uuid}/delete_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/projects/{uuid}/list_users/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/projects/{uuid}/move_project/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/projects/{uuid}/other_users/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/projects/{uuid}/stats/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/projects/{uuid}/update_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/promotions-campaigns/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/promotions-campaigns/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/promotions-campaigns/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/promotions-campaigns/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/promotions-campaigns/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/promotions-campaigns/{uuid}/activate/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/promotions-campaigns/{uuid}/orders/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/promotions-campaigns/{uuid}/resources/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/promotions-campaigns/{uuid}/terminate/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-proposals/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/proposal-proposals/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-proposals/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/{uuid}/add_user/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/{uuid}/approve/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/{uuid}/attach_document/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/{uuid}/delete_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-proposals/{uuid}/list_users/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/{uuid}/reject/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-proposals/{uuid}/resources/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/{uuid}/resources/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/{uuid}/submit/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/{uuid}/update_project_details/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-proposals/{uuid}/update_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-protected-calls/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/proposal-protected-calls/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-protected-calls/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/proposal-protected-calls/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/proposal-protected-calls/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/activate/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/add_user/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/archive/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/attach_documents/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/delete_user/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/detach_documents/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-protected-calls/{uuid}/list_users/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-protected-calls/{uuid}/offerings/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/offerings/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-protected-calls/{uuid}/resource_templates/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/resource_templates/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-protected-calls/{uuid}/rounds/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/rounds/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-protected-calls/{uuid}/update_user/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-public-calls/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-public-calls/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-requested-offerings/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-requested-offerings/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-requested-offerings/{uuid}/accept/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-requested-offerings/{uuid}/cancel/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-requested-resources/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-requested-resources/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-reviews/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-reviews/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/proposal-reviews/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/proposal-reviews/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/proposal-reviews/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/proposal-reviews/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-reviews/{uuid}/accept/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-reviews/{uuid}/reject/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/proposal-reviews/{uuid}/submit/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/provider-invoice-items/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/provider-invoice-items/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/query/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rabbitmq-user-stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rabbitmq-vhost-stats/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-apps/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-apps/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/rancher-apps/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-apps/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/rancher-apps/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-apps/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-apps/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-apps/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-catalogs/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-catalogs/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/rancher-catalogs/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-catalogs/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/rancher-catalogs/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-catalogs/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-catalogs/{uuid}/refresh/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-cluster-security-groups/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-cluster-security-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/rancher-cluster-security-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-cluster-security-groups/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-cluster-templates/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-cluster-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-clusters/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [capacity kubernetes_version requested router_ips]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: capacity
- New property: kubernetes_version
- New property: requested
- New property: router_ips
- Modified property: public_ips
- Items changed
- Properties changed
- New property: external_ip_address
- New property: floating_ip_uuid
- Deleted property: cluster
- Modified property: floating_ip
- Nullable changed from true to false
- ReadOnly changed from false to true
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-clusters/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: capacity
- New property: kubernetes_version
- New property: requested
- New property: router_ips
- Modified property: public_ips
- Items changed
- Properties changed
- New property: external_ip_address
- New property: floating_ip_uuid
- Deleted property: cluster
- Modified property: floating_ip
- Nullable changed from true to false
- ReadOnly changed from false to true
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/rancher-clusters/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-clusters/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [capacity kubernetes_version requested router_ips]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: capacity
- New property: kubernetes_version
- New property: requested
- New property: router_ips
- Modified property: public_ips
- Items changed
- Properties changed
- New property: external_ip_address
- New property: floating_ip_uuid
- Deleted property: cluster
- Modified property: floating_ip
- Nullable changed from true to false
- ReadOnly changed from false to true
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: capacity
- New property: kubernetes_version
- New property: requested
- New property: router_ips
- Modified property: public_ips
- Items changed
- Properties changed
- New property: external_ip_address
- New property: floating_ip_uuid
- Deleted property: cluster
- Modified property: floating_ip
- Nullable changed from true to false
- ReadOnly changed from false to true
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-clusters/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: capacity
- New property: kubernetes_version
- New property: requested
- New property: router_ips
- Modified property: public_ips
- Items changed
- Properties changed
- New property: external_ip_address
- New property: floating_ip_uuid
- Deleted property: cluster
- Modified property: floating_ip
- Nullable changed from true to false
- ReadOnly changed from false to true
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-clusters/{uuid}/create_management_security_group/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: capacity
- New property: kubernetes_version
- New property: requested
- New property: router_ips
- Modified property: public_ips
- Items changed
- Properties changed
- New property: external_ip_address
- New property: floating_ip_uuid
- Deleted property: cluster
- Modified property: floating_ip
- Nullable changed from true to false
- ReadOnly changed from false to true
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-clusters/{uuid}/import_yaml/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-clusters/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-clusters/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-hpas/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-hpas/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/rancher-hpas/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-hpas/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/rancher-hpas/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-hpas/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-hpas/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-hpas/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-hpas/{uuid}/yaml/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-hpas/{uuid}/yaml/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-ingresses/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-ingresses/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/rancher-ingresses/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-ingresses/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/rancher-ingresses/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-ingresses/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-ingresses/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-ingresses/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-ingresses/{uuid}/yaml/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-ingresses/{uuid}/yaml/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-namespaces/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-namespaces/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-nodes/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-nodes/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/rancher-nodes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-nodes/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-nodes/{uuid}/console/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-nodes/{uuid}/console_log/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-nodes/{uuid}/link_openstack/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-nodes/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-nodes/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-nodes/{uuid}/unlink_openstack/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-projects/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-projects/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-projects/{uuid}/secrets/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-role-templates/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-role-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-services/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-services/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/rancher-services/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-services/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/rancher-services/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-services/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-services/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-services/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-services/{uuid}/yaml/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-services/{uuid}/yaml/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-template-versions/{template_uuid}/{version}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-templates/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-users/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-workloads/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-workloads/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/rancher-workloads/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-workloads/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/rancher-workloads/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-workloads/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/rancher-workloads/{uuid}/redeploy/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/rancher-workloads/{uuid}/yaml/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/rancher-workloads/{uuid}/yaml/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-eduteams/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/cancel_termination/{uuid}
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/import_offering/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/pull_offering_details/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/pull_offering_invoices/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/pull_offering_orders/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/pull_offering_resources/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/pull_offering_robot_accounts/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/pull_offering_usage/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/pull_offering_users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/pull_order/{uuid}
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/push_project_data/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/remote_categories/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/remote_customers/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/shared_offerings/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/sync_resource/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/remote-waldur-api/sync_resource_project_permissions/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/roles/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [users_count]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: users_count
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/roles/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: users_count
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/roles/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/roles/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [users_count]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: users_count
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/roles/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: users_count
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/roles/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: users_count
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/roles/{uuid}/disable/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/roles/{uuid}/enable/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/roles/{uuid}/update_descriptions/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/service-settings/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/service-settings/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/slurm-allocation-user-usage/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/slurm-allocation-user-usage/{id}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/slurm-allocations/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/slurm-allocations/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/slurm-allocations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/slurm-allocations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/slurm-allocations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/slurm-allocations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/slurm-allocations/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/slurm-allocations/{uuid}/set_limits/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/slurm-allocations/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/slurm-associations/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/slurm-associations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/slurm-jobs/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/slurm-jobs/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/slurm-jobs/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/slurm-jobs/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/slurm-jobs/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/slurm-jobs/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/slurm-jobs/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/slurm-jobs/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-attachments/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/support-attachments/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/support-attachments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-attachments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-comments/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/support-comments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-comments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/support-comments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/support-comments/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-feedback-average-report/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-feedback-report/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-feedbacks/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/support-feedbacks/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-feedbacks/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-issues/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/support-issues/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/support-issues/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-issues/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/support-issues/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/support-issues/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/support-issues/{uuid}/comment/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/support-issues/{uuid}/sync/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-priorities/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-priorities/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-statistics/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-templates/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/support-templates/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/support-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/support-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/support-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/support-templates/{uuid}/create_attachments/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/support-templates/{uuid}/delete_attachments/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-users/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/support-users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/sync-issues/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/sync-issues/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-agreements/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-agreements/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/user-agreements/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-agreements/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/user-agreements/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/user-agreements/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-group-invitations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: auto_create_project
- New property: project_name_template
- New property: project_role
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-group-invitations/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: auto_create_project
- New property: project_name_template
- New property: project_role
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: auto_create_project
- New property: project_name_template
- New property: project_role
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-group-invitations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: auto_create_project
- New property: project_name_template
- New property: project_role
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-group-invitations/{uuid}/cancel/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-group-invitations/{uuid}/projects/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-group-invitations/{uuid}/submit_request/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: auto_create_project
- New property: project_name_template
- New property: project_role
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-invitations/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-invitations/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-invitations/approve/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-invitations/reject/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-invitations/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-invitations/{uuid}/accept/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-invitations/{uuid}/cancel/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-invitations/{uuid}/check/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-invitations/{uuid}/delete/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-invitations/{uuid}/details/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-invitations/{uuid}/send/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-permission-requests/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-permission-requests/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-permission-requests/{uuid}/approve/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/user-permission-requests/{uuid}/reject/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-permissions/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/user-permissions/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/users/
- New query param: username_list
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/users/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/users/confirm_email/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/users/me/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/users/{user_uuid}/marketplace-checklist-stats/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/users/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/users/{uuid}/cancel_change_email/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/users/{uuid}/change_email/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/users/{uuid}/change_password/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/users/{uuid}/pull_remote_user/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/users/{uuid}/refresh_token/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/users/{uuid}/token/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/version/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-clusters/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-clusters/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-datastores/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-datastores/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-disks/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/vmware-disks/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-disks/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-disks/{uuid}/extend/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-disks/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-disks/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-folders/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-folders/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-limits/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-networks/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-networks/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-ports/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/vmware-ports/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-ports/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-ports/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-ports/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-templates/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-templates/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-virtual-machine/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/
- Security changed
- New security requirements: waldurOIDCAuth
DELETE /api/vmware-virtual-machine/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-virtual-machine/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PATCH /api/vmware-virtual-machine/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
PUT /api/vmware-virtual-machine/{uuid}/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-virtual-machine/{uuid}/console/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/create_disk/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/create_port/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/pull/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/reboot_guest/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/reset/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/shutdown_guest/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/start/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/stop/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/suspend/
- Security changed
- New security requirements: waldurOIDCAuth
POST /api/vmware-virtual-machine/{uuid}/unlink/
- Security changed
- New security requirements: waldurOIDCAuth
GET /api/vmware-virtual-machine/{uuid}/web_console/
- Security changed
- New security requirements: waldurOIDCAuth
OpenAPI schema diff - 7.6.6
For version 7.6.6
No changes
OpenAPI schema diff - 7.6.7
For version 7.6.7
New Endpoints: None
Deleted Endpoints: None
Modified Endpoints: 21
GET /api/customers/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [projects]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: projects
POST /api/customers/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: projects
GET /api/customers/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [projects]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: projects
PATCH /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: projects
PUT /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: projects
GET /api/hooks-email/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
POST /api/hooks-email/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
GET /api/hooks-email/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
PATCH /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
PUT /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
GET /api/hooks-web/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
POST /api/hooks-web/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
GET /api/hooks-web/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
PATCH /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
PUT /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [user_deactivated_no_roles]
GET /api/marketplace-offering-permissions-log/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: role
- ReadOnly changed from false to true
GET /api/marketplace-offering-permissions-log/{id}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: role
- ReadOnly changed from false to true
GET /api/marketplace-offering-permissions/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: role
- ReadOnly changed from false to true
GET /api/marketplace-offering-permissions/{id}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: role
- ReadOnly changed from false to true
GET /api/override-settings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: DEACTIVATE_USER_IF_NO_ROLES
POST /api/override-settings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: DEACTIVATE_USER_IF_NO_ROLES
OpenAPI schema diff - 7.6.8
For version 7.6.8
New Endpoints: 35
GET /api/backend-resource-requests/
POST /api/backend-resource-requests/
GET /api/backend-resource-requests/{uuid}/
POST /api/backend-resource-requests/{uuid}/set_done/
POST /api/backend-resource-requests/{uuid}/set_erred/
POST /api/backend-resource-requests/{uuid}/start_processing/
GET /api/backend-resources/
POST /api/backend-resources/
DELETE /api/backend-resources/{uuid}/
GET /api/backend-resources/{uuid}/
POST /api/backend-resources/{uuid}/import_resource/
GET /api/marketplace-maintenance-announcement-offerings/
POST /api/marketplace-maintenance-announcement-offerings/
DELETE /api/marketplace-maintenance-announcement-offerings/{uuid}/
GET /api/marketplace-maintenance-announcement-offerings/{uuid}/
PATCH /api/marketplace-maintenance-announcement-offerings/{uuid}/
PUT /api/marketplace-maintenance-announcement-offerings/{uuid}/
GET /api/marketplace-maintenance-announcement-template-offerings/
POST /api/marketplace-maintenance-announcement-template-offerings/
DELETE /api/marketplace-maintenance-announcement-template-offerings/{uuid}/
GET /api/marketplace-maintenance-announcement-template-offerings/{uuid}/
PATCH /api/marketplace-maintenance-announcement-template-offerings/{uuid}/
PUT /api/marketplace-maintenance-announcement-template-offerings/{uuid}/
GET /api/marketplace-maintenance-announcements-template/
POST /api/marketplace-maintenance-announcements-template/
DELETE /api/marketplace-maintenance-announcements-template/{uuid}/
GET /api/marketplace-maintenance-announcements-template/{uuid}/
PATCH /api/marketplace-maintenance-announcements-template/{uuid}/
PUT /api/marketplace-maintenance-announcements-template/{uuid}/
GET /api/marketplace-maintenance-announcements/
POST /api/marketplace-maintenance-announcements/
DELETE /api/marketplace-maintenance-announcements/{uuid}/
GET /api/marketplace-maintenance-announcements/{uuid}/
PATCH /api/marketplace-maintenance-announcements/{uuid}/
PUT /api/marketplace-maintenance-announcements/{uuid}/
Deleted Endpoints: None
Modified Endpoints: 268
GET /api/access-subnets/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/admin-announcements/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/auth-tokens/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/autoprovisioning-rule-plans/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/autoprovisioning-rules/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/aws-images/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/aws-instances/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/aws-regions/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/aws-sizes/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/aws-volumes/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/azure-images/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/azure-locations/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/azure-public-ips/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/azure-resource-groups/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/azure-sizes/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/azure-sql-databases/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/azure-sql-servers/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/azure-virtualmachines/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/booking-offerings/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/booking-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/booking-resources/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/booking-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/broadcast-message-templates/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/broadcast-messages/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/call-managing-organisations/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/call-rounds/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/component-user-usage-limits/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/customer-credits/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/customer-permissions-reviews/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/digitalocean-droplets/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/digitalocean-images/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/digitalocean-regions/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/digitalocean-sizes/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/email-logs/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/event-subscriptions/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/events-stats/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/events/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/financial-reports/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/freeipa-profiles/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/google-auth/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/hooks-email/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
POST /api/hooks-email/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
GET /api/hooks-email/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
PATCH /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
PUT /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
GET /api/hooks-web/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
POST /api/hooks-web/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
- Examples changed
- Modified example: Webhook-create
- Value changed from map[destination_url:http://example.com/ event_groups:[users] event_types:[resource_start_succeeded]] to map[destination_url:http://example.com/ event_groups:[users] event_types:[customer_update_succeeded]]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
GET /api/hooks-web/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
PATCH /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
PUT /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [openstack_security_group_added_remotely openstack_security_group_removed_remotely openstack_security_group_added_locally openstack_security_group_removed_locally]
GET /api/hooks/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/identity-providers/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/invoice-items/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/invoices/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/keycloak-groups/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/keycloak-user-group-memberships/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/keys/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/lexis-links/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-categories/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-category-columns/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-category-component-usages/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-category-components/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-category-groups/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-category-help-articles/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-checklists-categories/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-checklists-categories/{category_uuid}/checklists/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-checklists/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-checklists/{checklist_uuid}/answers/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-checklists/{checklist_uuid}/questions/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-checklists/{checklist_uuid}/user/{user_uuid}/answers/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-component-usages/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-component-user-usages/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-customer-estimated-cost-policies/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-customer-service-accounts/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-integration-statuses/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-offering-estimated-cost-policies/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-offering-files/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-offering-permissions-log/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
GET /api/marketplace-offering-permissions/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
GET /api/marketplace-offering-referrals/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-offering-usage-policies/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-offering-user-roles/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-offering-users/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-orders/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-orders/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-plan-components/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-plans/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
POST /api/marketplace-plans/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/marketplace-plans/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PATCH /api/marketplace-plans/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PUT /api/marketplace-plans/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/marketplace-project-estimated-cost-policies/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-project-service-accounts/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-project-update-requests/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-provider-offerings/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-provider-offerings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-provider-offerings/groups/
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-provider-offerings/{uuid}/component_stats/
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
GET /api/marketplace-provider-offerings/{uuid}/costs/
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
GET /api/marketplace-provider-offerings/{uuid}/customers/
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-provider-offerings/{uuid}/list_customer_projects/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-provider-offerings/{uuid}/move_offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-provider-offerings/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-provider-offerings/{uuid}/orders/{order_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Description changed from '' to 'Refresh offering user usernames.'
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: status
- Properties changed
- New property: status
- Deleted property: access_url
- Deleted property: attributes
- Deleted property: backend_id
- Deleted property: backend_metadata
- Deleted property: billable
- Deleted property: category
- Deleted property: category_title
- Deleted property: category_uuid
- Deleted property: citation_count
- Deleted property: components
- Deleted property: country
- Deleted property: created
- Deleted property: customer
- Deleted property: customer_name
- Deleted property: customer_uuid
- Deleted property: datacite_doi
- Deleted property: description
- Deleted property: endpoints
- Deleted property: files
- Deleted property: full_description
- Deleted property: getting_started
- Deleted property: google_calendar_is_public
- Deleted property: google_calendar_link
- Deleted property: image
- Deleted property: integration_guide
- Deleted property: integration_status
- Deleted property: latitude
- Deleted property: longitude
- Deleted property: name
- Deleted property: options
- Deleted property: order_count
- Deleted property: organization_groups
- Deleted property: parent_description
- Deleted property: parent_name
- Deleted property: parent_uuid
- Deleted property: paused_reason
- Deleted property: plans
- Deleted property: plugin_options
- Deleted property: privacy_policy_link
- Deleted property: project
- Deleted property: project_name
- Deleted property: project_uuid
- Deleted property: quotas
- Deleted property: resource_options
- Deleted property: roles
- Deleted property: scope
- Deleted property: scope_error_message
- Deleted property: scope_name
- Deleted property: scope_state
- Deleted property: scope_uuid
- Deleted property: screenshots
- Deleted property: secret_options
- Deleted property: service_attributes
- Deleted property: shared
- Deleted property: slug
- Deleted property: state
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Deleted property: thumbnail
- Deleted property: total_cost
- Deleted property: total_cost_estimated
- Deleted property: total_customers
- Deleted property: type
- Deleted property: url
- Deleted property: uuid
- Deleted property: vendor_details
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-provider-offerings/{uuid}/update_offering_component/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: uuid
- Properties changed
- New property: uuid
POST /api/marketplace-provider-offerings/{uuid}/update_overview/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-provider-resources/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-provider-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-provider-resources/{uuid}/details/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
POST /api/marketplace-provider-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-provider-resources/{uuid}/set_as_erred/
- Description changed from '' to 'Set the resource as erred.'
- Responses changed
- Modified response: 200
- Description changed from '' to 'No response body'
- Content changed
- Deleted media type: application/json
POST /api/marketplace-provider-resources/{uuid}/set_backend_id/
- Description changed from '' to 'Set resource backend ID.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: status
- Properties changed
- New property: status
- Deleted property: backend_id
POST /api/marketplace-provider-resources/{uuid}/set_backend_metadata/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: status
- Deleted required property: backend_metadata
- Properties changed
- New property: status
- Deleted property: backend_metadata
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
POST /api/marketplace-provider-resources/{uuid}/set_limits/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: status
- Deleted required property: limits
- Properties changed
- New property: status
- Deleted property: limits
POST /api/marketplace-provider-resources/{uuid}/submit_report/
- Description changed from '' to 'Submit resource report.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: status
- Deleted required property: report
- Properties changed
- New property: status
- Deleted property: report
GET /api/marketplace-public-offerings/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-public-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-public-offerings/{uuid}/plans/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/marketplace-public-offerings/{uuid}/plans/{plan_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/marketplace-remote-synchronisations/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-resource-users/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-resources/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-resources/{uuid}/details/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
POST /api/marketplace-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-resources/{uuid}/update_options/
- Description changed from '' to 'Update resource options.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: status
- Properties changed
- New property: status
- Deleted property: options
GET /api/marketplace-robot-accounts/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-screenshots/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-script-async-dry-run/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
POST /api/marketplace-script-dry-run/{uuid}/run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- New property: minimal_team_count_for_provisioning
- New property: required_team_role_for_provisioning
GET /api/marketplace-sections/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-service-providers/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/marketplace-service-providers/{service_provider_uuid}/customer_projects/
- New query param: slug
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plans
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/marketplace-service-providers/{service_provider_uuid}/project_permissions/
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
GET /api/marketplace-service-providers/{service_provider_uuid}/projects/
- New query param: slug
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/notification-messages-templates/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/notification-messages/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-backups/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-flavors/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- New query param: offering_uuid
GET /api/openstack-images/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- New query param: offering_uuid
GET /api/openstack-instance-availability-zones/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-instances/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-marketplace-tenants/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-migrations/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-network-rbac-policies/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-networks/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-ports/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-routers/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-security-groups/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-server-groups/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-snapshots/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-subnets/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-tenants/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-volume-availability-zones/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/openstack-volume-types/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- New query param: offering_uuid
GET /api/openstack-volumes/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/organization-groups/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/override-settings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES
- New property: MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM
POST /api/override-settings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES
- New property: MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM
GET /api/payment-profiles/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/payments/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/project-credits/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/project-types/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/projects/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- New query param: slug
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
POST /api/projects/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/projects/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PATCH /api/projects/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PUT /api/projects/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
POST /api/projects/{uuid}/move_project/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/promotions-campaigns/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/promotions-campaigns/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/promotions-campaigns/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: attributes
- Type changed from 'object' to ''
- Description changed from 'Get attributes excluding secret attributes, such as username and password.' to ''
- ReadOnly changed from true to false
- AdditionalProperties changed
- Schema deleted
GET /api/proposal-proposals/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
POST /api/proposal-proposals/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-proposals/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-proposals/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
POST /api/proposal-proposals/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PATCH /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PUT /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-protected-calls/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: offerings
- Items changed
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
POST /api/proposal-protected-calls/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: offerings
- Items changed
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: offerings
- Items changed
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PATCH /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: offerings
- Items changed
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PUT /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: offerings
- Items changed
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-protected-calls/{uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: created
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
POST /api/proposal-protected-calls/{uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: created
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: created
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PATCH /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: created
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
PUT /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: created
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: offerings
- Items changed
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-public-calls/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: offerings
- Items changed
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-public-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
- Modified property: offerings
- Items changed
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-requested-offerings/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: created
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-requested-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: created
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-requested-resources/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-requested-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- New property: created
- Modified property: components
- Items changed
- Properties changed
- Modified property: factor
- Nullable changed from false to true
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: description
- MaxLength changed from 2000 to null
GET /api/proposal-reviews/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/provider-invoice-items/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-apps/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-catalogs/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-cluster-security-groups/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-cluster-templates/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-clusters/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-hpas/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-ingresses/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-namespaces/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-nodes/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-projects/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-role-templates/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-services/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-templates/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-users/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/rancher-workloads/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/roles/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/service-settings/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
GET /api/slurm-allocation-user-usage/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/slurm-allocations/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/slurm-associations/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/slurm-jobs/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/support-attachments/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/support-comments/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/support-feedbacks/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/support-issues/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/support-priorities/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/support-templates/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/support-users/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/user-agreements/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: content
POST /api/user-agreements/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: content
- Properties changed
- Modified property: content
- MinLength changed from 0 to 1
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: content
GET /api/user-agreements/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: content
PATCH /api/user-agreements/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: content
- MinLength changed from 0 to 1
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: content
PUT /api/user-agreements/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: content
- Properties changed
- Modified property: content
- MinLength changed from 0 to 1
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: content
GET /api/user-group-invitations/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/user-invitations/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: extra_invitation_text
- MaxLength changed from null to 250
POST /api/user-invitations/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: extra_invitation_text
- MaxLength changed from null to 250
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: extra_invitation_text
- MaxLength changed from null to 250
GET /api/user-invitations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: extra_invitation_text
- MaxLength changed from null to 250
GET /api/user-permission-requests/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/user-permissions/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
- Modified query param: scope_uuid
- Schema changed
- Format changed from 'uuid' to ''
GET /api/users/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/vmware-clusters/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/vmware-datastores/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/vmware-disks/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/vmware-folders/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/vmware-networks/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/vmware-ports/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/vmware-templates/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
GET /api/vmware-virtual-machine/
- Description changed from '' to 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing'
OpenAPI schema diff - 7.6.9
For version 7.6.9
New Endpoints: 1
GET /api/openstack-volume-types/names/
Deleted Endpoints: None
Modified Endpoints: 28
GET /api/booking-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/booking-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/invoices/
- Deleted query param: max_sum
- Deleted query param: min_sum
GET /api/invoices/{uuid}/stats/
- Deleted query param: max_sum
- Deleted query param: min_sum
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-provider-offerings/{uuid}/move_offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-public-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-public-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-robot-accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
GET /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offering_plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
POST /api/marketplace-script-dry-run/{uuid}/run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plugin_options
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MergedPluginOptions
- Properties changed
- Modified property: managed_rancher_tenant_max_ram
- Description changed from 'Max number of RAM for tenants' to 'Max number of RAM for tenants (GB)'
OpenAPI schema diff - 7.7.0
For version 7.7.0
New Endpoints: 8
POST /api/broadcast-messages/{uuid}/schedule/
GET /api/call-proposal-project-role-mappings/
POST /api/call-proposal-project-role-mappings/
DELETE /api/call-proposal-project-role-mappings/{uuid}/
GET /api/call-proposal-project-role-mappings/{uuid}/
PATCH /api/call-proposal-project-role-mappings/{uuid}/
PUT /api/call-proposal-project-role-mappings/{uuid}/
DELETE /api/marketplace-plans/{uuid}/
Deleted Endpoints: 6
GET /api/autoprovisioning-rule-plans/
POST /api/autoprovisioning-rule-plans/
DELETE /api/autoprovisioning-rule-plans/{uuid}/
GET /api/autoprovisioning-rule-plans/{uuid}/
PATCH /api/autoprovisioning-rule-plans/{uuid}/
PUT /api/autoprovisioning-rule-plans/{uuid}/
Modified Endpoints: 36
GET /api/autoprovisioning-rules/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- New required property: name
- New required property: project_role_description
- New required property: project_role_dispay_name
- Deleted required property: plans
- Properties changed
- New property: customer_name
- New property: customer_uuid
- New property: name
- New property: plan
- New property: plan_attributes
- New property: plan_limits
- New property: project_role_description
- New property: project_role_dispay_name
- Deleted property: plans
POST /api/autoprovisioning-rules/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: name
- Properties changed
- New property: name
- New property: plan
- New property: plan_attributes
- New property: plan_limits
- New property: project_role_name
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- New required property: name
- New required property: project_role_description
- New required property: project_role_dispay_name
- Deleted required property: plans
- Properties changed
- New property: customer_name
- New property: customer_uuid
- New property: name
- New property: plan
- New property: plan_attributes
- New property: plan_limits
- New property: project_role_description
- New property: project_role_dispay_name
- Deleted property: plans
GET /api/autoprovisioning-rules/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- New required property: name
- New required property: project_role_description
- New required property: project_role_dispay_name
- Deleted required property: plans
- Properties changed
- New property: customer_name
- New property: customer_uuid
- New property: name
- New property: plan
- New property: plan_attributes
- New property: plan_limits
- New property: project_role_description
- New property: project_role_dispay_name
- Deleted property: plans
PATCH /api/autoprovisioning-rules/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: name
- New property: plan
- New property: plan_attributes
- New property: plan_limits
- New property: project_role_name
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- New required property: name
- New required property: project_role_description
- New required property: project_role_dispay_name
- Deleted required property: plans
- Properties changed
- New property: customer_name
- New property: customer_uuid
- New property: name
- New property: plan
- New property: plan_attributes
- New property: plan_limits
- New property: project_role_description
- New property: project_role_dispay_name
- Deleted property: plans
PUT /api/autoprovisioning-rules/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: name
- Properties changed
- New property: name
- New property: plan
- New property: plan_attributes
- New property: plan_limits
- New property: project_role_name
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: customer_name
- New required property: customer_uuid
- New required property: name
- New required property: project_role_description
- New required property: project_role_dispay_name
- Deleted required property: plans
- Properties changed
- New property: customer_name
- New property: customer_uuid
- New property: name
- New property: plan
- New property: plan_attributes
- New property: plan_limits
- New property: project_role_description
- New property: project_role_dispay_name
- Deleted property: plans
GET /api/hooks-email/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
POST /api/hooks-email/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
GET /api/hooks-email/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
PATCH /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
PUT /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
GET /api/hooks-web/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
POST /api/hooks-web/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
GET /api/hooks-web/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
PATCH /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
PUT /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_plan_deleted]
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
POST /api/marketplace-provider-offerings/{uuid}/move_offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-public-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-public-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
POST /api/marketplace-script-dry-run/{uuid}/run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: google_calendar_link
- Description changed from '' to 'Get the Google Calendar link for an offering.'
GET /api/proposal-protected-calls/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [default_project_role default_project_role_description default_project_role_name]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: default_project_role
- Deleted property: default_project_role_description
- Deleted property: default_project_role_name
POST /api/proposal-protected-calls/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: default_project_role
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: default_project_role
- Deleted property: default_project_role_description
- Deleted property: default_project_role_name
GET /api/proposal-protected-calls/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [default_project_role default_project_role_description default_project_role_name]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: default_project_role
- Deleted property: default_project_role_description
- Deleted property: default_project_role_name
PATCH /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: default_project_role
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: default_project_role
- Deleted property: default_project_role_description
- Deleted property: default_project_role_name
PUT /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: default_project_role
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: default_project_role
- Deleted property: default_project_role_description
- Deleted property: default_project_role_name
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: default_project_role
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: default_project_role
- Deleted property: default_project_role_description
- Deleted property: default_project_role_name
OpenAPI schema diff - 7.7.1
For version 7.7.1
New Endpoints: None
Deleted Endpoints: None
Modified Endpoints: 18
GET /api/autoprovisioning-rules/
- Tags changed from 'autoprovisioning-rules' to 'Autoprovisioning Rules'
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Manage autoprovisioning rules.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: category_title
- New required property: category_url
- New required property: offering_name
- New required property: offering_uuid
- New required property: plan_name
- New required property: project_role_display_name
- Deleted required property: project_role_dispay_name
- Properties changed
- New property: category_title
- New property: category_url
- New property: offering_name
- New property: offering_uuid
- New property: plan_name
- New property: project_role_display_name
- Deleted property: project_role_dispay_name
POST /api/autoprovisioning-rules/
- Tags changed from 'autoprovisioning-rules' to 'Autoprovisioning Rules'
- Description changed from '' to 'Manage autoprovisioning rules.'
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: category_title
- New required property: category_url
- New required property: offering_name
- New required property: offering_uuid
- New required property: plan_name
- New required property: project_role_display_name
- Deleted required property: project_role_dispay_name
- Properties changed
- New property: category_title
- New property: category_url
- New property: offering_name
- New property: offering_uuid
- New property: plan_name
- New property: project_role_display_name
- Deleted property: project_role_dispay_name
DELETE /api/autoprovisioning-rules/{uuid}/
- Tags changed from 'autoprovisioning-rules' to 'Autoprovisioning Rules'
- Description changed from '' to 'Manage autoprovisioning rules.'
GET /api/autoprovisioning-rules/{uuid}/
- Tags changed from 'autoprovisioning-rules' to 'Autoprovisioning Rules'
- Description changed from '' to 'Manage autoprovisioning rules.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: category_title
- New required property: category_url
- New required property: offering_name
- New required property: offering_uuid
- New required property: plan_name
- New required property: project_role_display_name
- Deleted required property: project_role_dispay_name
- Properties changed
- New property: category_title
- New property: category_url
- New property: offering_name
- New property: offering_uuid
- New property: plan_name
- New property: project_role_display_name
- Deleted property: project_role_dispay_name
PATCH /api/autoprovisioning-rules/{uuid}/
- Tags changed from 'autoprovisioning-rules' to 'Autoprovisioning Rules'
- Description changed from '' to 'Manage autoprovisioning rules.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: category_title
- New required property: category_url
- New required property: offering_name
- New required property: offering_uuid
- New required property: plan_name
- New required property: project_role_display_name
- Deleted required property: project_role_dispay_name
- Properties changed
- New property: category_title
- New property: category_url
- New property: offering_name
- New property: offering_uuid
- New property: plan_name
- New property: project_role_display_name
- Deleted property: project_role_dispay_name
PUT /api/autoprovisioning-rules/{uuid}/
- Tags changed from 'autoprovisioning-rules' to 'Autoprovisioning Rules'
- Description changed from '' to 'Manage autoprovisioning rules.'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: category_title
- New required property: category_url
- New required property: offering_name
- New required property: offering_uuid
- New required property: plan_name
- New required property: project_role_display_name
- Deleted required property: project_role_dispay_name
- Properties changed
- New property: category_title
- New property: category_url
- New property: offering_name
- New property: offering_uuid
- New property: plan_name
- New property: project_role_display_name
- Deleted property: project_role_dispay_name
GET /api/customers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: default_tax_percent
- Pattern changed from '^-?\d{0,2}(?:.\d{0,2})?$' to '^-?\d{0,3}(?:.\d{0,2})?$'
POST /api/customers/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: default_tax_percent
- Pattern changed from '^-?\d{0,2}(?:.\d{0,2})?$' to '^-?\d{0,3}(?:.\d{0,2})?$'
GET /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: default_tax_percent
- Pattern changed from '^-?\d{0,2}(?:.\d{0,2})?$' to '^-?\d{0,3}(?:.\d{0,2})?$'
PATCH /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: default_tax_percent
- Pattern changed from '^-?\d{0,2}(?:.\d{0,2})?$' to '^-?\d{0,3}(?:.\d{0,2})?$'
PUT /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: default_tax_percent
- Pattern changed from '^-?\d{0,2}(?:.\d{0,2})?$' to '^-?\d{0,3}(?:.\d{0,2})?$'
GET /api/openstack-floating-ips/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [port_fixed_ips]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: port_fixed_ips
GET /api/openstack-floating-ips/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [port_fixed_ips]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: port_fixed_ips
POST /api/openstack-tenants/{uuid}/create_floating_ip/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: port_fixed_ips
GET /api/user-group-invitations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: project_name_template
- Nullable changed from false to true
POST /api/user-group-invitations/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: project_name_template
- Nullable changed from false to true
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: project_name_template
- Nullable changed from false to true
GET /api/user-group-invitations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: project_name_template
- Nullable changed from false to true
POST /api/user-group-invitations/{uuid}/submit_request/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: project_name_template
- Nullable changed from false to true
OpenAPI schema diff - 7.7.2
For version 7.7.2
New Endpoints: 25
GET /api/marketplace-checklists-admin-question-dependencies/
POST /api/marketplace-checklists-admin-question-dependencies/
DELETE /api/marketplace-checklists-admin-question-dependencies/{uuid}/
GET /api/marketplace-checklists-admin-question-dependencies/{uuid}/
PATCH /api/marketplace-checklists-admin-question-dependencies/{uuid}/
PUT /api/marketplace-checklists-admin-question-dependencies/{uuid}/
GET /api/marketplace-checklists-admin-question-options/
POST /api/marketplace-checklists-admin-question-options/
DELETE /api/marketplace-checklists-admin-question-options/{uuid}/
GET /api/marketplace-checklists-admin-question-options/{uuid}/
PATCH /api/marketplace-checklists-admin-question-options/{uuid}/
PUT /api/marketplace-checklists-admin-question-options/{uuid}/
GET /api/marketplace-checklists-admin-questions/
POST /api/marketplace-checklists-admin-questions/
DELETE /api/marketplace-checklists-admin-questions/{uuid}/
GET /api/marketplace-checklists-admin-questions/{uuid}/
PATCH /api/marketplace-checklists-admin-questions/{uuid}/
PUT /api/marketplace-checklists-admin-questions/{uuid}/
GET /api/marketplace-checklists-admin/
POST /api/marketplace-checklists-admin/
DELETE /api/marketplace-checklists-admin/{uuid}/
GET /api/marketplace-checklists-admin/{uuid}/
PATCH /api/marketplace-checklists-admin/{uuid}/
PUT /api/marketplace-checklists-admin/{uuid}/
GET /api/marketplace-checklists-admin/{uuid}/questions/
Deleted Endpoints: None
Modified Endpoints: 41
POST /api/backend-resources/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/booking-resources/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [offering_slug parent_offering_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/booking-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [offering_slug parent_offering_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/marketplace-checklists-categories/{category_uuid}/checklists/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: url
- Properties changed
- New property: url
GET /api/marketplace-checklists/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: url
- Properties changed
- New property: url
GET /api/marketplace-checklists/{checklist_uuid}/
- Modified path param: checklist_uuid
- Name changed from 'checklist_uuid' to 'uuid'
- Schema changed
- Format changed from '' to 'uuid'
- Pattern changed from '^[a-f0-9]+$' to ''
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: url
- Properties changed
- New property: url
GET /api/marketplace-checklists/{checklist_uuid}/answers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: answer_data
- Deleted property: value
POST /api/marketplace-checklists/{checklist_uuid}/answers/submit/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: answer_data
- Deleted required property: value
- Properties changed
- New property: answer_data
- Deleted property: value
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: answer_data
- Deleted required property: value
- Properties changed
- New property: answer_data
- Deleted property: value
GET /api/marketplace-checklists/{checklist_uuid}/questions/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Return questions available for current user.'
- Modified path param: checklist_uuid
- Name changed from 'checklist_uuid' to 'uuid'
- Schema changed
- Format changed from '' to 'uuid'
- Pattern changed from '^[a-f0-9]+$' to ''
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: question_options
- Properties changed
- New property: question_options
- Deleted property: correct_answer
- Modified property: solution
- Description changed from 'It is shown when incorrect or N/A answer is chosen' to 'Guidance shown when answer needs clarification'
GET /api/marketplace-checklists/{checklist_uuid}/user/{user_uuid}/answers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: answer_data
- Deleted property: value
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/marketplace-provider-resources/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [offering_slug parent_offering_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/marketplace-provider-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [offering_slug parent_offering_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/marketplace-provider-resources/{uuid}/details/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [offering_slug parent_offering_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
POST /api/marketplace-provider-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/marketplace-resources/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [offering_slug parent_offering_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/marketplace-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [offering_slug parent_offering_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/marketplace-resources/{uuid}/details/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [offering_slug parent_offering_slug]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
POST /api/marketplace-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/openstack-ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: backend_id
- Nullable changed from false to true
POST /api/openstack-ports/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Nullable changed from false to true
GET /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Nullable changed from false to true
PATCH /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Nullable changed from false to true
PUT /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Nullable changed from false to true
GET /api/openstack-routers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: backend_id
- Nullable changed from false to true
GET /api/openstack-routers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Nullable changed from false to true
GET /api/promotions-campaigns/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: offering_slug
- New property: parent_offering_slug
GET /api/proposal-protected-calls/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: resource_templates
- Items changed
- Properties changed
- New property: requested_offering_plan
POST /api/proposal-protected-calls/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: resource_templates
- Items changed
- Properties changed
- New property: requested_offering_plan
GET /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: resource_templates
- Items changed
- Properties changed
- New property: requested_offering_plan
PATCH /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: resource_templates
- Items changed
- Properties changed
- New property: requested_offering_plan
PUT /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: resource_templates
- Items changed
- Properties changed
- New property: requested_offering_plan
GET /api/proposal-protected-calls/{uuid}/resource_templates/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: requested_offering_plan
POST /api/proposal-protected-calls/{uuid}/resource_templates/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: requested_offering_plan
GET /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: requested_offering_plan
PATCH /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: requested_offering_plan
PUT /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: requested_offering_plan
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: resource_templates
- Items changed
- Properties changed
- New property: requested_offering_plan
GET /api/proposal-public-calls/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: resource_templates
- Items changed
- Properties changed
- New property: requested_offering_plan
GET /api/proposal-public-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: resource_templates
- Items changed
- Properties changed
- New property: requested_offering_plan
OpenAPI schema diff - 7.7.3
For version 7.7.3
New Endpoints: 3
POST /api/marketplace-offering-users/{uuid}/set_pending_account_linking/
POST /api/marketplace-offering-users/{uuid}/set_pending_additional_validation/
POST /api/marketplace-offering-users/{uuid}/set_validation_complete/
Deleted Endpoints: None
Modified Endpoints: 39
GET /api/hooks-email/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
POST /api/hooks-email/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
GET /api/hooks-email/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
PATCH /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
PUT /api/hooks-email/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
GET /api/hooks-web/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
POST /api/hooks-web/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
GET /api/hooks-web/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
PATCH /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
PUT /api/hooks-web/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: event_types
- Items changed
- New enum values: [marketplace_offering_user_updated]
GET /api/marketplace-maintenance-announcement-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
POST /api/marketplace-maintenance-announcement-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
GET /api/marketplace-maintenance-announcement-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
PATCH /api/marketplace-maintenance-announcement-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
PUT /api/marketplace-maintenance-announcement-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
GET /api/marketplace-maintenance-announcements-template/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
POST /api/marketplace-maintenance-announcements-template/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
GET /api/marketplace-maintenance-announcements-template/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
PATCH /api/marketplace-maintenance-announcements-template/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
PUT /api/marketplace-maintenance-announcements-template/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
GET /api/marketplace-maintenance-announcements/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: service_provider_name
- Properties changed
- New property: service_provider_name
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MaintenanceAnnouncementStateEnum
- Type changed from 'integer' to 'string'
- New enum values: [Draft Scheduled In progress Completed Cancelled]
- Deleted enum values: [1 2 3 4 5]
POST /api/marketplace-maintenance-announcements/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: service_provider_name
- Properties changed
- New property: service_provider_name
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MaintenanceAnnouncementStateEnum
- Type changed from 'integer' to 'string'
- New enum values: [Draft Scheduled In progress Completed Cancelled]
- Deleted enum values: [1 2 3 4 5]
GET /api/marketplace-maintenance-announcements/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: service_provider_name
- Properties changed
- New property: service_provider_name
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MaintenanceAnnouncementStateEnum
- Type changed from 'integer' to 'string'
- New enum values: [Draft Scheduled In progress Completed Cancelled]
- Deleted enum values: [1 2 3 4 5]
PATCH /api/marketplace-maintenance-announcements/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: service_provider_name
- Properties changed
- New property: service_provider_name
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MaintenanceAnnouncementStateEnum
- Type changed from 'integer' to 'string'
- New enum values: [Draft Scheduled In progress Completed Cancelled]
- Deleted enum values: [1 2 3 4 5]
PUT /api/marketplace-maintenance-announcements/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: service_provider_name
- Properties changed
- New property: service_provider_name
- Modified property: affected_offerings
- Items changed
- Required changed
- New required property: impact_level_display
- New required property: offering_name
- Properties changed
- New property: impact_level_display
- New property: offering_name
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/MaintenanceAnnouncementStateEnum
- Type changed from 'integer' to 'string'
- New enum values: [Draft Scheduled In progress Completed Cancelled]
- Deleted enum values: [1 2 3 4 5]
GET /api/marketplace-offering-users/
- New query param: state
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_provider_comment state]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: service_provider_comment
- New property: state
POST /api/marketplace-offering-users/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_provider_comment
- New property: state
GET /api/marketplace-offering-users/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_provider_comment state]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_provider_comment
- New property: state
PATCH /api/marketplace-offering-users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_provider_comment
- New property: state
PUT /api/marketplace-offering-users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_provider_comment
- New property: state
POST /api/marketplace-service-providers/{uuid}/set_offerings_username/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: username
- MinLength changed from 1 to 0
GET /api/user-group-invitations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: user_affiliations
- New property: user_email_patterns
- Modified property: scope_type
- Nullable changed from false to true
POST /api/user-group-invitations/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_affiliations
- New property: user_email_patterns
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_affiliations
- New property: user_email_patterns
- Modified property: scope_type
- Nullable changed from false to true
GET /api/user-group-invitations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_affiliations
- New property: user_email_patterns
- Modified property: scope_type
- Nullable changed from false to true
POST /api/user-group-invitations/{uuid}/submit_request/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_affiliations
- New property: user_email_patterns
- Modified property: scope_type
- Nullable changed from false to true
GET /api/user-invitations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
POST /api/user-invitations/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
GET /api/user-invitations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
GET /api/user-invitations/{uuid}/details/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
OpenAPI schema diff - 7.7.4
For version 7.7.4
New Endpoints: 221
HEAD /api/access-subnets/
HEAD /api/admin-announcements/
HEAD /api/auth-tokens/
HEAD /api/autoprovisioning-rules/
HEAD /api/aws-images/
HEAD /api/aws-instances/
HEAD /api/aws-regions/
HEAD /api/aws-sizes/
HEAD /api/aws-volumes/
HEAD /api/azure-images/
HEAD /api/azure-locations/
HEAD /api/azure-public-ips/
HEAD /api/azure-resource-groups/
HEAD /api/azure-sizes/
HEAD /api/azure-sql-databases/
HEAD /api/azure-sql-servers/
HEAD /api/azure-virtualmachines/
HEAD /api/backend-resource-requests/
HEAD /api/backend-resources/
HEAD /api/booking-offerings/
HEAD /api/booking-resources/
HEAD /api/broadcast-message-templates/
HEAD /api/broadcast-messages/
HEAD /api/broadcast-messages/recipients/
HEAD /api/call-managing-organisations/
HEAD /api/call-proposal-project-role-mappings/
HEAD /api/call-rounds/
HEAD /api/component-user-usage-limits/
HEAD /api/customer-credits/
HEAD /api/customer-permissions-reviews/
HEAD /api/customer-quotas/
HEAD /api/customers/
HEAD /api/customers/countries/
HEAD /api/digitalocean-droplets/
HEAD /api/digitalocean-images/
HEAD /api/digitalocean-regions/
HEAD /api/digitalocean-sizes/
HEAD /api/email-logs/
HEAD /api/event-subscriptions/
HEAD /api/events-stats/
HEAD /api/events/
HEAD /api/events/count/
HEAD /api/events/event_groups/
HEAD /api/events/scope_types/
HEAD /api/financial-reports/
HEAD /api/freeipa-profiles/
HEAD /api/google-auth/
HEAD /api/google-auth/callback/
HEAD /api/hooks-email/
HEAD /api/hooks-web/
HEAD /api/hooks/
HEAD /api/identity-providers/
HEAD /api/invoice-items/
HEAD /api/invoice-items/costs/
HEAD /api/invoice-items/customer_costs_for_period/
HEAD /api/invoice-items/project_costs_for_period/
HEAD /api/invoice-items/total_price/
HEAD /api/invoices/
HEAD /api/invoices/growth/
HEAD /api/keycloak-groups/
HEAD /api/keycloak-user-group-memberships/
HEAD /api/keys/
HEAD /api/lexis-links/
HEAD /api/marketplace-categories/
HEAD /api/marketplace-category-columns/
HEAD /api/marketplace-category-component-usages/
HEAD /api/marketplace-category-components/
HEAD /api/marketplace-category-groups/
HEAD /api/marketplace-category-help-articles/
HEAD /api/marketplace-checklists-admin-question-dependencies/
HEAD /api/marketplace-checklists-admin-question-options/
HEAD /api/marketplace-checklists-admin-questions/
HEAD /api/marketplace-checklists-admin/
HEAD /api/marketplace-checklists/
HEAD /api/marketplace-component-usages/
HEAD /api/marketplace-component-user-usages/
HEAD /api/marketplace-customer-estimated-cost-policies/
HEAD /api/marketplace-customer-estimated-cost-policies/actions/
HEAD /api/marketplace-customer-service-accounts/
HEAD /api/marketplace-integration-statuses/
HEAD /api/marketplace-maintenance-announcement-offerings/
HEAD /api/marketplace-maintenance-announcement-template-offerings/
HEAD /api/marketplace-maintenance-announcements-template/
HEAD /api/marketplace-maintenance-announcements/
HEAD /api/marketplace-offering-estimated-cost-policies/
HEAD /api/marketplace-offering-estimated-cost-policies/actions/
HEAD /api/marketplace-offering-files/
HEAD /api/marketplace-offering-permissions-log/
HEAD /api/marketplace-offering-permissions/
HEAD /api/marketplace-offering-referrals/
HEAD /api/marketplace-offering-usage-policies/
HEAD /api/marketplace-offering-usage-policies/actions/
HEAD /api/marketplace-offering-user-roles/
HEAD /api/marketplace-offering-users/
POST /api/marketplace-offering-users/{uuid}/begin_creating/
POST /api/marketplace-offering-users/{uuid}/set_ok/
HEAD /api/marketplace-orders/
HEAD /api/marketplace-plan-components/
HEAD /api/marketplace-plans/
HEAD /api/marketplace-plans/usage_stats/
HEAD /api/marketplace-project-estimated-cost-policies/
HEAD /api/marketplace-project-estimated-cost-policies/actions/
HEAD /api/marketplace-project-service-accounts/
HEAD /api/marketplace-project-update-requests/
HEAD /api/marketplace-provider-offerings/
HEAD /api/marketplace-provider-offerings/groups/
HEAD /api/marketplace-provider-resources/
HEAD /api/marketplace-public-offerings/
HEAD /api/marketplace-remote-synchronisations/
HEAD /api/marketplace-resource-users/
HEAD /api/marketplace-resources/
HEAD /api/marketplace-robot-accounts/
HEAD /api/marketplace-screenshots/
HEAD /api/marketplace-script-async-dry-run/
HEAD /api/marketplace-sections/
HEAD /api/marketplace-service-providers/
HEAD /api/marketplace-stats/component_usages/
HEAD /api/marketplace-stats/component_usages_per_month/
HEAD /api/marketplace-stats/component_usages_per_project/
HEAD /api/marketplace-stats/count_active_resources_grouped_by_offering/
HEAD /api/marketplace-stats/count_active_resources_grouped_by_offering_country/
HEAD /api/marketplace-stats/count_active_resources_grouped_by_organization_group/
HEAD /api/marketplace-stats/count_projects_grouped_by_provider_and_industry_flag/
HEAD /api/marketplace-stats/count_projects_grouped_by_provider_and_oecd/
HEAD /api/marketplace-stats/count_projects_of_service_providers/
HEAD /api/marketplace-stats/count_projects_of_service_providers_grouped_by_oecd/
HEAD /api/marketplace-stats/count_unique_users_connected_with_active_resources_of_service_provider/
HEAD /api/marketplace-stats/count_users_of_service_providers/
HEAD /api/marketplace-stats/customer_member_count/
HEAD /api/marketplace-stats/offerings_counter_stats/
HEAD /api/marketplace-stats/organization_project_count/
HEAD /api/marketplace-stats/organization_resource_count/
HEAD /api/marketplace-stats/projects_limits_grouped_by_industry_flag/
HEAD /api/marketplace-stats/projects_limits_grouped_by_oecd/
HEAD /api/marketplace-stats/projects_usages_grouped_by_industry_flag/
HEAD /api/marketplace-stats/projects_usages_grouped_by_oecd/
HEAD /api/marketplace-stats/resources_limits/
HEAD /api/marketplace-stats/total_cost_of_active_resources_per_offering/
HEAD /api/notification-messages-templates/
HEAD /api/notification-messages/
HEAD /api/openstack-backups/
HEAD /api/openstack-flavors/
HEAD /api/openstack-flavors/usage_stats/
HEAD /api/openstack-floating-ips/
HEAD /api/openstack-images/
HEAD /api/openstack-images/usage_stats/
HEAD /api/openstack-instance-availability-zones/
HEAD /api/openstack-instances/
HEAD /api/openstack-marketplace-tenants/
HEAD /api/openstack-migrations/
HEAD /api/openstack-network-rbac-policies/
HEAD /api/openstack-networks/
HEAD /api/openstack-ports/
HEAD /api/openstack-routers/
HEAD /api/openstack-security-groups/
HEAD /api/openstack-server-groups/
HEAD /api/openstack-snapshots/
HEAD /api/openstack-subnets/
HEAD /api/openstack-tenants/
HEAD /api/openstack-volume-availability-zones/
HEAD /api/openstack-volume-types/
HEAD /api/openstack-volume-types/names/
HEAD /api/openstack-volumes/
HEAD /api/organization-groups/
HEAD /api/payment-profiles/
HEAD /api/payments/
HEAD /api/project-credits/
HEAD /api/project-quotas/
HEAD /api/project-types/
HEAD /api/projects/
HEAD /api/promotions-campaigns/
HEAD /api/proposal-proposals/
HEAD /api/proposal-protected-calls/
HEAD /api/proposal-public-calls/
HEAD /api/proposal-requested-offerings/
HEAD /api/proposal-requested-resources/
HEAD /api/proposal-reviews/
HEAD /api/provider-invoice-items/
HEAD /api/rancher-apps/
HEAD /api/rancher-catalogs/
HEAD /api/rancher-cluster-security-groups/
HEAD /api/rancher-cluster-templates/
HEAD /api/rancher-clusters/
HEAD /api/rancher-hpas/
HEAD /api/rancher-ingresses/
HEAD /api/rancher-namespaces/
HEAD /api/rancher-nodes/
HEAD /api/rancher-projects/
HEAD /api/rancher-role-templates/
HEAD /api/rancher-services/
HEAD /api/rancher-templates/
HEAD /api/rancher-users/
HEAD /api/rancher-workloads/
HEAD /api/roles/
HEAD /api/service-settings/
HEAD /api/slurm-allocation-user-usage/
HEAD /api/slurm-allocations/
HEAD /api/slurm-associations/
HEAD /api/slurm-jobs/
HEAD /api/support-attachments/
HEAD /api/support-comments/
HEAD /api/support-feedbacks/
HEAD /api/support-issues/
HEAD /api/support-priorities/
HEAD /api/support-templates/
HEAD /api/support-users/
HEAD /api/user-agreements/
HEAD /api/user-group-invitations/
HEAD /api/user-invitations/
HEAD /api/user-permission-requests/
HEAD /api/user-permissions/
HEAD /api/users/
HEAD /api/users/me/
HEAD /api/vmware-clusters/
HEAD /api/vmware-datastores/
HEAD /api/vmware-disks/
HEAD /api/vmware-folders/
HEAD /api/vmware-networks/
HEAD /api/vmware-ports/
HEAD /api/vmware-templates/
HEAD /api/vmware-virtual-machine/
Deleted Endpoints: None
Modified Endpoints: 371
GET /api-auth/saml2/providers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/access-subnets/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/access-subnets/{uuid}/
- Extensions changed
- New extension: x-permissions
PATCH /api/access-subnets/{uuid}/
- Extensions changed
- New extension: x-permissions
PUT /api/access-subnets/{uuid}/
- Extensions changed
- New extension: x-permissions
GET /api/admin-announcements/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/auth-tokens/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/autoprovisioning-rules/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/aws-images/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/aws-instances/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/aws-regions/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/aws-sizes/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/aws-volumes/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/azure-images/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/azure-locations/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/azure-public-ips/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/azure-resource-groups/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/azure-sizes/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/azure-sql-databases/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/azure-sql-servers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/azure-virtualmachines/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/backend-resource-requests/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: uuid
- Properties changed
- New property: uuid
- Headers changed
- New header: x-result-count
POST /api/backend-resource-requests/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: uuid
- Properties changed
- New property: uuid
GET /api/backend-resource-requests/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: uuid
- Properties changed
- New property: uuid
POST /api/backend-resource-requests/{uuid}/set_done/
- Extensions changed
- New extension: x-permissions
POST /api/backend-resource-requests/{uuid}/set_erred/
- Extensions changed
- New extension: x-permissions
POST /api/backend-resource-requests/{uuid}/start_processing/
- Extensions changed
- New extension: x-permissions
GET /api/backend-resources/
- Extensions changed
- New extension: x-permissions
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/backend-resources/{uuid}/
- Extensions changed
- New extension: x-permissions
GET /api/backend-resources/{uuid}/
- Extensions changed
- New extension: x-permissions
GET /api/booking-offerings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/booking-resources/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/booking-resources/{uuid}/accept/
- Extensions changed
- New extension: x-permissions
GET /api/broadcast-message-templates/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/broadcast-messages/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/call-managing-organisations/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/call-managing-organisations/{uuid}/list_users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/call-proposal-project-role-mappings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/call-rounds/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/call-rounds/{uuid}/reviewers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/component-user-usage-limits/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/component-user-usage-limits/{uuid}/
- Extensions changed
- New extension: x-permissions
PATCH /api/component-user-usage-limits/{uuid}/
- Extensions changed
- New extension: x-permissions
PUT /api/component-user-usage-limits/{uuid}/
- Extensions changed
- New extension: x-permissions
GET /api/customer-credits/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/customer-credits/{uuid}/consumptions/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/customer-permissions-reviews/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/customer-quotas/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/customers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/customers/countries/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/customers/{uuid}/list_users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/customers/{uuid}/users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/database-stats/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/digitalocean-droplets/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/digitalocean-images/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/digitalocean-regions/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/digitalocean-sizes/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/email-logs/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/event-subscriptions/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/events-stats/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/events/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/financial-reports/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/freeipa-profiles/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/google-auth/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/hooks-email/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/hooks-web/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/identity-providers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/invoice-items/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/invoice-items/costs/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/invoices/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/invoices/{uuid}/stats/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/keycloak-groups/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/keycloak-user-group-memberships/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/keys/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/lexis-links/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/lexis-links/
- Extensions changed
- New extension: x-permissions
DELETE /api/lexis-links/{uuid}/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-bookings/{uuid}/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-categories/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-category-columns/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-category-component-usages/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-category-components/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-category-groups/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-category-help-articles/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists-admin-question-dependencies/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists-admin-question-options/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists-admin-questions/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists-admin/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists-categories/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists-categories/{category_uuid}/checklists/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists/{checklist_uuid}/answers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists/{checklist_uuid}/stats/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists/{checklist_uuid}/user/{user_uuid}/answers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-checklists/{uuid}/questions/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-component-usages/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-component-usages/{uuid}/set_user_usage/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-component-user-usages/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-customer-estimated-cost-policies/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-customer-service-accounts/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/marketplace-customer-service-accounts/{uuid}/
- Extensions changed
- New extension: x-permissions
PATCH /api/marketplace-customer-service-accounts/{uuid}/
- Extensions changed
- New extension: x-permissions
PUT /api/marketplace-customer-service-accounts/{uuid}/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-customer-service-accounts/{uuid}/rotate_api_key/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-integration-statuses/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-maintenance-announcement-offerings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-maintenance-announcement-template-offerings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-maintenance-announcements-template/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-maintenance-announcements/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-offering-estimated-cost-policies/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-offering-files/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-offering-permissions-log/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-offering-permissions/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-offering-referrals/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-offering-usage-policies/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-offering-user-roles/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-offering-users/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_email]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: user_email
- Headers changed
- New header: x-result-count
POST /api/marketplace-offering-users/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_email
GET /api/marketplace-offering-users/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_email]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_email
PATCH /api/marketplace-offering-users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_email
PUT /api/marketplace-offering-users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_email
POST /api/marketplace-offering-users/{uuid}/set_pending_account_linking/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-offering-users/{uuid}/set_pending_additional_validation/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-offering-users/{uuid}/set_validation_complete/
- Extensions changed
- New extension: x-permissions
- Request body changed
GET /api/marketplace-orders/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/marketplace-orders/{uuid}/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-orders/{uuid}/approve_by_consumer/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-orders/{uuid}/approve_by_provider/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-orders/{uuid}/cancel/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-orders/{uuid}/reject_by_provider/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-orders/{uuid}/set_state_done/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-orders/{uuid}/set_state_erred/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-orders/{uuid}/set_state_executing/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-plan-components/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-plans/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-plans/usage_stats/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
PATCH /api/marketplace-plans/{uuid}/
- Extensions changed
- New extension: x-permissions
PUT /api/marketplace-plans/{uuid}/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-plans/{uuid}/archive/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-plans/{uuid}/delete_organization_groups/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-plans/{uuid}/update_organization_groups/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-plans/{uuid}/update_prices/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-plans/{uuid}/update_quotas/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-plugins/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-project-estimated-cost-policies/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-project-service-accounts/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/marketplace-project-service-accounts/{uuid}/
- Extensions changed
- New extension: x-permissions
PATCH /api/marketplace-project-service-accounts/{uuid}/
- Extensions changed
- New extension: x-permissions
PUT /api/marketplace-project-service-accounts/{uuid}/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-project-service-accounts/{uuid}/rotate_api_key/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-project-update-requests/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-provider-offerings/groups/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/marketplace-provider-offerings/{uuid}/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/add_endpoint/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/archive/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-provider-offerings/{uuid}/component_stats/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-provider-offerings/{uuid}/costs/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-provider-offerings/{uuid}/create_offering_component/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-provider-offerings/{uuid}/customers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-provider-offerings/{uuid}/delete_endpoint/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-provider-offerings/{uuid}/importable_resources/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-provider-offerings/{uuid}/list_customer_projects/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-provider-offerings/{uuid}/list_customer_users/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: permissions
- Items changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
- Headers changed
- New header: x-result-count
GET /api/marketplace-provider-offerings/{uuid}/list_users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-provider-offerings/{uuid}/orders/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-provider-offerings/{uuid}/pause/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/remove_offering_component/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/set_backend_metadata/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/sync/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/unpause/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/update_attributes/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/update_description/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/update_integration/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/update_location/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/update_offering_component/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/update_options/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-offerings/{uuid}/update_resource_options/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-provider-resources/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-provider-resources/{uuid}/offering_for_subresources/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-provider-resources/{uuid}/plan_periods/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-provider-resources/{uuid}/refresh_last_sync/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-resources/{uuid}/set_as_erred/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-resources/{uuid}/set_backend_id/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-resources/{uuid}/set_backend_metadata/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-provider-resources/{uuid}/submit_report/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-provider-resources/{uuid}/team/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-provider-resources/{uuid}/terminate/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-public-offerings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-public-offerings/{uuid}/plans/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-related-customers/{customer_uuid}/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-remote-synchronisations/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-resource-offerings/{category_uuid}/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-resource-users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-resources/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-resources/{uuid}/offering_for_subresources/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-resources/{uuid}/plan_periods/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-resources/{uuid}/switch_plan/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-resources/{uuid}/team/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-resources/{uuid}/terminate/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-resources/{uuid}/update_limits/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-resources/{uuid}/update_options/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-robot-accounts/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/marketplace-robot-accounts/{uuid}/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-runtime-states/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-screenshots/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/marketplace-screenshots/{uuid}/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-script-async-dry-run/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Extensions changed
- New extension: x-permissions
POST /api/marketplace-script-dry-run/{uuid}/run/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-sections/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{service_provider_uuid}/customer_projects/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{service_provider_uuid}/customers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{service_provider_uuid}/keys/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{service_provider_uuid}/project_permissions/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{service_provider_uuid}/projects/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{service_provider_uuid}/user_customers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{service_provider_uuid}/users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{uuid}/list_users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{uuid}/revenue/
- Extensions changed
- New extension: x-permissions
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{uuid}/robot_account_customers/
- Extensions changed
- New extension: x-permissions
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-service-providers/{uuid}/robot_account_projects/
- Extensions changed
- New extension: x-permissions
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/marketplace-service-providers/{uuid}/set_offerings_username/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-service-providers/{uuid}/stat/
- Extensions changed
- New extension: x-permissions
GET /api/marketplace-stats/component_usages/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/component_usages_per_month/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/component_usages_per_project/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/count_active_resources_grouped_by_offering/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/count_active_resources_grouped_by_offering_country/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/count_active_resources_grouped_by_organization_group/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/count_projects_grouped_by_provider_and_industry_flag/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/count_projects_grouped_by_provider_and_oecd/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/count_projects_of_service_providers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/count_projects_of_service_providers_grouped_by_oecd/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/count_unique_users_connected_with_active_resources_of_service_provider/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/count_users_of_service_providers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/customer_member_count/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/offerings_counter_stats/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/organization_project_count/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/organization_resource_count/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/resources_limits/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/marketplace-stats/total_cost_of_active_resources_per_offering/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/notification-messages-templates/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/notification-messages/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-backups/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-flavors/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-floating-ips/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-images/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-instance-availability-zones/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-instances/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-instances/{uuid}/floating_ips/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-instances/{uuid}/ports/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-marketplace-tenants/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-migrations/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-network-rbac-policies/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-networks/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-ports/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-routers/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-security-groups/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-server-groups/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-snapshots/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-snapshots/{uuid}/restorations/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-subnets/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-tenants/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-tenants/{uuid}/backend_instances/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-tenants/{uuid}/backend_volumes/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-volume-availability-zones/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-volume-types/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/openstack-volumes/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/organization-groups/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/payment-profiles/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/payments/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/project-credits/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/project-quotas/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/project-types/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/projects/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/projects/{project_uuid}/marketplace-checklists/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/projects/{uuid}/
- Extensions changed
- New extension: x-permissions
PATCH /api/projects/{uuid}/
- Extensions changed
- New extension: x-permissions
PUT /api/projects/{uuid}/
- Extensions changed
- New extension: x-permissions
GET /api/projects/{uuid}/list_users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/projects/{uuid}/other_users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/promotions-campaigns/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
DELETE /api/promotions-campaigns/{uuid}/
- Extensions changed
- New extension: x-permissions
PUT /api/promotions-campaigns/{uuid}/
- Extensions changed
- New extension: x-permissions
POST /api/promotions-campaigns/{uuid}/activate/
- Extensions changed
- New extension: x-permissions
GET /api/promotions-campaigns/{uuid}/orders/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/promotions-campaigns/{uuid}/resources/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/promotions-campaigns/{uuid}/terminate/
- Extensions changed
- New extension: x-permissions
GET /api/proposal-proposals/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/proposal-proposals/{uuid}/approve/
- Extensions changed
- New extension: x-permissions
GET /api/proposal-proposals/{uuid}/list_users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/proposal-proposals/{uuid}/reject/
- Extensions changed
- New extension: x-permissions
GET /api/proposal-proposals/{uuid}/resources/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/proposal-protected-calls/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [manager_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: manager_uuid
- Headers changed
- New header: x-result-count
POST /api/proposal-protected-calls/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: manager_uuid
GET /api/proposal-protected-calls/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [manager_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: manager_uuid
PATCH /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: manager_uuid
PUT /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: manager_uuid
GET /api/proposal-protected-calls/{uuid}/list_users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/proposal-protected-calls/{uuid}/offerings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/proposal-protected-calls/{uuid}/resource_templates/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/proposal-protected-calls/{uuid}/rounds/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: manager_uuid
GET /api/proposal-public-calls/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [manager_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: manager_uuid
- Headers changed
- New header: x-result-count
GET /api/proposal-public-calls/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [manager_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: manager_uuid
GET /api/proposal-requested-offerings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
POST /api/proposal-requested-offerings/{uuid}/accept/
- Extensions changed
- New extension: x-permissions
POST /api/proposal-requested-offerings/{uuid}/cancel/
- Extensions changed
- New extension: x-permissions
GET /api/proposal-requested-resources/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/proposal-reviews/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/provider-invoice-items/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rabbitmq-user-stats/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rabbitmq-vhost-stats/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-apps/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-catalogs/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-cluster-security-groups/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-cluster-templates/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-clusters/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-hpas/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-ingresses/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-namespaces/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-nodes/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-projects/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-role-templates/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-services/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-templates/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/rancher-workloads/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/roles/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/service-settings/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/slurm-allocation-user-usage/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/slurm-allocations/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/slurm-associations/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/slurm-jobs/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/support-attachments/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/support-comments/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/support-feedbacks/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/support-issues/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/support-priorities/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/support-templates/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/support-users/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/user-agreements/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/user-group-invitations/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/user-group-invitations/{uuid}/projects/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/user-invitations/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/user-permission-requests/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/user-permissions/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
- Headers changed
- New header: x-result-count
GET /api/user-permissions/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
GET /api/users/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: permissions
- Items changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
- Headers changed
- New header: x-result-count
POST /api/users/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: permissions
- Items changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
GET /api/users/me/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: permissions
- Items changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
GET /api/users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: permissions
- Items changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
PATCH /api/users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: permissions
- Items changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
PUT /api/users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: permissions
- Items changed
- Properties changed
- Modified property: scope_type
- Nullable changed from false to true
GET /api/vmware-clusters/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/vmware-datastores/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/vmware-disks/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/vmware-folders/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/vmware-networks/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/vmware-ports/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/vmware-templates/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
GET /api/vmware-virtual-machine/
- Responses changed
- Modified response: 200
- Headers changed
- New header: x-result-count
OpenAPI schema diff - 7.7.5
For version 7.7.5
New Endpoints: 95
GET /api/checklists-admin-categories/
HEAD /api/checklists-admin-categories/
POST /api/checklists-admin-categories/
DELETE /api/checklists-admin-categories/{uuid}/
GET /api/checklists-admin-categories/{uuid}/
PATCH /api/checklists-admin-categories/{uuid}/
PUT /api/checklists-admin-categories/{uuid}/
GET /api/checklists-admin-question-dependencies/
HEAD /api/checklists-admin-question-dependencies/
POST /api/checklists-admin-question-dependencies/
DELETE /api/checklists-admin-question-dependencies/{uuid}/
GET /api/checklists-admin-question-dependencies/{uuid}/
PATCH /api/checklists-admin-question-dependencies/{uuid}/
PUT /api/checklists-admin-question-dependencies/{uuid}/
GET /api/checklists-admin-question-options/
HEAD /api/checklists-admin-question-options/
POST /api/checklists-admin-question-options/
DELETE /api/checklists-admin-question-options/{uuid}/
GET /api/checklists-admin-question-options/{uuid}/
PATCH /api/checklists-admin-question-options/{uuid}/
PUT /api/checklists-admin-question-options/{uuid}/
GET /api/checklists-admin-questions/
HEAD /api/checklists-admin-questions/
POST /api/checklists-admin-questions/
DELETE /api/checklists-admin-questions/{uuid}/
GET /api/checklists-admin-questions/{uuid}/
PATCH /api/checklists-admin-questions/{uuid}/
PUT /api/checklists-admin-questions/{uuid}/
GET /api/checklists-admin/
HEAD /api/checklists-admin/
POST /api/checklists-admin/
DELETE /api/checklists-admin/{uuid}/
GET /api/checklists-admin/{uuid}/
PATCH /api/checklists-admin/{uuid}/
PUT /api/checklists-admin/{uuid}/
GET /api/checklists-admin/{uuid}/questions/
GET /api/external-links/
HEAD /api/external-links/
POST /api/external-links/
DELETE /api/external-links/{uuid}/
GET /api/external-links/{uuid}/
PATCH /api/external-links/{uuid}/
PUT /api/external-links/{uuid}/
GET /api/maintenance-announcement-offerings/
HEAD /api/maintenance-announcement-offerings/
POST /api/maintenance-announcement-offerings/
DELETE /api/maintenance-announcement-offerings/{uuid}/
GET /api/maintenance-announcement-offerings/{uuid}/
PATCH /api/maintenance-announcement-offerings/{uuid}/
PUT /api/maintenance-announcement-offerings/{uuid}/
GET /api/maintenance-announcement-template-offerings/
HEAD /api/maintenance-announcement-template-offerings/
POST /api/maintenance-announcement-template-offerings/
DELETE /api/maintenance-announcement-template-offerings/{uuid}/
GET /api/maintenance-announcement-template-offerings/{uuid}/
PATCH /api/maintenance-announcement-template-offerings/{uuid}/
PUT /api/maintenance-announcement-template-offerings/{uuid}/
GET /api/maintenance-announcements-template/
HEAD /api/maintenance-announcements-template/
POST /api/maintenance-announcements-template/
DELETE /api/maintenance-announcements-template/{uuid}/
GET /api/maintenance-announcements-template/{uuid}/
PATCH /api/maintenance-announcements-template/{uuid}/
PUT /api/maintenance-announcements-template/{uuid}/
GET /api/maintenance-announcements/
HEAD /api/maintenance-announcements/
POST /api/maintenance-announcements/
DELETE /api/maintenance-announcements/{uuid}/
GET /api/maintenance-announcements/{uuid}/
PATCH /api/maintenance-announcements/{uuid}/
PUT /api/maintenance-announcements/{uuid}/
POST /api/maintenance-announcements/{uuid}/cancel_maintenance/
POST /api/maintenance-announcements/{uuid}/complete_maintenance/
POST /api/maintenance-announcements/{uuid}/schedule/
POST /api/maintenance-announcements/{uuid}/start_maintenance/
POST /api/maintenance-announcements/{uuid}/unschedule/
POST /api/marketplace-offering-users/{uuid}/request_deletion/
POST /api/marketplace-offering-users/{uuid}/set_deleted/
POST /api/marketplace-offering-users/{uuid}/set_deleting/
POST /api/marketplace-offering-users/{uuid}/set_error_creating/
POST /api/marketplace-offering-users/{uuid}/set_error_deleting/
PATCH /api/marketplace-offering-users/{uuid}/update_comments/
POST /api/marketplace-provider-resources/{uuid}/pull/
POST /api/marketplace-resources/{uuid}/pull/
GET /api/projects/{uuid}/checklist/
GET /api/projects/{uuid}/completion_status/
POST /api/projects/{uuid}/submit_answers/
GET /api/proposal-proposals/{uuid}/checklist/
GET /api/proposal-proposals/{uuid}/checklist_review/
GET /api/proposal-proposals/{uuid}/completion_review_status/
GET /api/proposal-proposals/{uuid}/completion_status/
POST /api/proposal-proposals/{uuid}/submit_answers/
GET /api/proposal-protected-calls/{uuid}/compliance_overview/
GET /api/proposal-protected-calls/{uuid}/proposals/{proposal_uuid}/compliance-answers/
POST /api/proposal-protected-calls/{uuid}/review_proposal_compliance/
Deleted Endpoints: 73
GET /api/customers/{customer_uuid}/marketplace-checklists/
POST /api/customers/{customer_uuid}/marketplace-checklists/
GET /api/customers/{customer_uuid}/marketplace-checklists/{checklist_uuid}/
GET /api/marketplace-checklists-admin-question-dependencies/
HEAD /api/marketplace-checklists-admin-question-dependencies/
POST /api/marketplace-checklists-admin-question-dependencies/
DELETE /api/marketplace-checklists-admin-question-dependencies/{uuid}/
GET /api/marketplace-checklists-admin-question-dependencies/{uuid}/
PATCH /api/marketplace-checklists-admin-question-dependencies/{uuid}/
PUT /api/marketplace-checklists-admin-question-dependencies/{uuid}/
GET /api/marketplace-checklists-admin-question-options/
HEAD /api/marketplace-checklists-admin-question-options/
POST /api/marketplace-checklists-admin-question-options/
DELETE /api/marketplace-checklists-admin-question-options/{uuid}/
GET /api/marketplace-checklists-admin-question-options/{uuid}/
PATCH /api/marketplace-checklists-admin-question-options/{uuid}/
PUT /api/marketplace-checklists-admin-question-options/{uuid}/
GET /api/marketplace-checklists-admin-questions/
HEAD /api/marketplace-checklists-admin-questions/
POST /api/marketplace-checklists-admin-questions/
DELETE /api/marketplace-checklists-admin-questions/{uuid}/
GET /api/marketplace-checklists-admin-questions/{uuid}/
PATCH /api/marketplace-checklists-admin-questions/{uuid}/
PUT /api/marketplace-checklists-admin-questions/{uuid}/
GET /api/marketplace-checklists-admin/
HEAD /api/marketplace-checklists-admin/
POST /api/marketplace-checklists-admin/
DELETE /api/marketplace-checklists-admin/{uuid}/
GET /api/marketplace-checklists-admin/{uuid}/
PATCH /api/marketplace-checklists-admin/{uuid}/
PUT /api/marketplace-checklists-admin/{uuid}/
GET /api/marketplace-checklists-admin/{uuid}/questions/
GET /api/marketplace-checklists-categories/
GET /api/marketplace-checklists-categories/{category_uuid}/checklists/
GET /api/marketplace-checklists-categories/{uuid}/
GET /api/marketplace-checklists/
HEAD /api/marketplace-checklists/
GET /api/marketplace-checklists/{checklist_uuid}/answers/
POST /api/marketplace-checklists/{checklist_uuid}/answers/submit/
GET /api/marketplace-checklists/{checklist_uuid}/stats/
GET /api/marketplace-checklists/{checklist_uuid}/user/{user_uuid}/answers/
GET /api/marketplace-checklists/{uuid}/
GET /api/marketplace-checklists/{uuid}/questions/
GET /api/marketplace-maintenance-announcement-offerings/
HEAD /api/marketplace-maintenance-announcement-offerings/
POST /api/marketplace-maintenance-announcement-offerings/
DELETE /api/marketplace-maintenance-announcement-offerings/{uuid}/
GET /api/marketplace-maintenance-announcement-offerings/{uuid}/
PATCH /api/marketplace-maintenance-announcement-offerings/{uuid}/
PUT /api/marketplace-maintenance-announcement-offerings/{uuid}/
GET /api/marketplace-maintenance-announcement-template-offerings/
HEAD /api/marketplace-maintenance-announcement-template-offerings/
POST /api/marketplace-maintenance-announcement-template-offerings/
DELETE /api/marketplace-maintenance-announcement-template-offerings/{uuid}/
GET /api/marketplace-maintenance-announcement-template-offerings/{uuid}/
PATCH /api/marketplace-maintenance-announcement-template-offerings/{uuid}/
PUT /api/marketplace-maintenance-announcement-template-offerings/{uuid}/
GET /api/marketplace-maintenance-announcements-template/
HEAD /api/marketplace-maintenance-announcements-template/
POST /api/marketplace-maintenance-announcements-template/
DELETE /api/marketplace-maintenance-announcements-template/{uuid}/
GET /api/marketplace-maintenance-announcements-template/{uuid}/
PATCH /api/marketplace-maintenance-announcements-template/{uuid}/
PUT /api/marketplace-maintenance-announcements-template/{uuid}/
GET /api/marketplace-maintenance-announcements/
HEAD /api/marketplace-maintenance-announcements/
POST /api/marketplace-maintenance-announcements/
DELETE /api/marketplace-maintenance-announcements/{uuid}/
GET /api/marketplace-maintenance-announcements/{uuid}/
PATCH /api/marketplace-maintenance-announcements/{uuid}/
PUT /api/marketplace-maintenance-announcements/{uuid}/
GET /api/projects/{project_uuid}/marketplace-checklists/
GET /api/users/{user_uuid}/marketplace-checklist-stats/
Modified Endpoints: 337
HEAD /api/access-subnets/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'access_subnets_head' to 'access_subnets_count'
HEAD /api/admin-announcements/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'admin_announcements_head' to 'admin_announcements_count'
HEAD /api/auth-tokens/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'auth_tokens_head' to 'auth_tokens_count'
HEAD /api/autoprovisioning-rules/
- Description changed from 'Manage autoprovisioning rules.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'autoprovisioning_rules_head' to 'autoprovisioning_rules_count'
HEAD /api/aws-images/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'aws_images_head' to 'aws_images_count'
HEAD /api/aws-instances/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'aws_instances_head' to 'aws_instances_count'
HEAD /api/aws-regions/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'aws_regions_head' to 'aws_regions_count'
HEAD /api/aws-sizes/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'aws_sizes_head' to 'aws_sizes_count'
HEAD /api/aws-volumes/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'aws_volumes_head' to 'aws_volumes_count'
HEAD /api/azure-images/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'azure_images_head' to 'azure_images_count'
HEAD /api/azure-locations/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'azure_locations_head' to 'azure_locations_count'
HEAD /api/azure-public-ips/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'azure_public_ips_head' to 'azure_public_ips_count'
HEAD /api/azure-resource-groups/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'azure_resource_groups_head' to 'azure_resource_groups_count'
HEAD /api/azure-sizes/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'azure_sizes_head' to 'azure_sizes_count'
HEAD /api/azure-sql-databases/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'azure_sql_databases_head' to 'azure_sql_databases_count'
HEAD /api/azure-sql-servers/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'azure_sql_servers_head' to 'azure_sql_servers_count'
HEAD /api/azure-virtualmachines/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'azure_virtualmachines_head' to 'azure_virtualmachines_count'
GET /api/backend-resource-requests/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: error_message
- New required property: error_traceback
- Properties changed
- New property: error_message
- New property: error_traceback
HEAD /api/backend-resource-requests/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'backend_resource_requests_head' to 'backend_resource_requests_count'
POST /api/backend-resource-requests/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: error_message
- New required property: error_traceback
- Properties changed
- New property: error_message
- New property: error_traceback
GET /api/backend-resource-requests/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: error_message
- New required property: error_traceback
- Properties changed
- New property: error_message
- New property: error_traceback
HEAD /api/backend-resources/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'backend_resources_head' to 'backend_resources_count'
POST /api/backend-resources/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/booking-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/booking-offerings/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'booking_offerings_head' to 'booking_offerings_count'
GET /api/booking-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/booking-resources/
- Modified query param: query
- Description changed from 'Query' to 'Search by resource UUID, name, backend ID, effective ID, IPs or hypervisor'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
HEAD /api/booking-resources/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'booking_resources_head' to 'booking_resources_count'
- Modified query param: query
- Description changed from 'Query' to 'Search by resource UUID, name, backend ID, effective ID, IPs or hypervisor'
GET /api/booking-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
HEAD /api/broadcast-message-templates/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'broadcast_message_templates_head' to 'broadcast_message_templates_count'
HEAD /api/broadcast-messages/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'broadcast_messages_head' to 'broadcast_messages_count'
HEAD /api/broadcast-messages/recipients/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'broadcast_messages_recipients_head' to 'broadcast_messages_recipients_count'
HEAD /api/call-managing-organisations/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'call_managing_organisations_head' to 'call_managing_organisations_count'
HEAD /api/call-proposal-project-role-mappings/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'call_proposal_project_role_mappings_head' to 'call_proposal_project_role_mappings_count'
HEAD /api/call-rounds/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'call_rounds_head' to 'call_rounds_count'
HEAD /api/component-user-usage-limits/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'component_user_usage_limits_head' to 'component_user_usage_limits_count'
HEAD /api/customer-credits/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'customer_credits_head' to 'customer_credits_count'
HEAD /api/customer-permissions-reviews/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'customer_permissions_reviews_head' to 'customer_permissions_reviews_count'
HEAD /api/customer-quotas/
- Description changed from 'List customer quotas.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'customer_quotas_head' to 'customer_quotas_count'
GET /api/customers/
- Modified query param: query
- Description changed from '' to 'Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number'
HEAD /api/customers/
-
Description changed from 'To get a list of customers, run GET against /api/customers/ as authenticated user. Note that a user can only see connected customers:
-
customers that the user owns
- customers that have a project where user has a role
Staff also can filter customers by user UUID, for example /api/customers/?user_uuid=
Staff also can filter customers by exists accounting_start_date, for example:
The first category: /api/customers/?accounting_is_running=True has accounting_start_date empty (i.e. accounting starts at once) has accounting_start_date in the past (i.e. has already started).
Those that are not in the first: /api/customers/?accounting_is_running=False # exists accounting_start_date' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'customers_head' to 'customers_count'
- Modified query param: query
- Description changed from '' to 'Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number'
GET /api/customers/countries/
- Modified query param: query
- Description changed from '' to 'Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number'
HEAD /api/customers/countries/
- Description changed from 'Return list of countries' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'customers_countries_head' to 'customers_countries_count'
- Modified query param: query
- Description changed from '' to 'Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number'
HEAD /api/digitalocean-droplets/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'digitalocean_droplets_head' to 'digitalocean_droplets_count'
HEAD /api/digitalocean-images/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'digitalocean_images_head' to 'digitalocean_images_count'
HEAD /api/digitalocean-regions/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'digitalocean_regions_head' to 'digitalocean_regions_count'
HEAD /api/digitalocean-sizes/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'digitalocean_sizes_head' to 'digitalocean_sizes_count'
HEAD /api/email-logs/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'email_logs_head' to 'email_logs_count'
HEAD /api/event-subscriptions/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'event_subscriptions_head' to 'event_subscriptions_count'
HEAD /api/events-stats/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'events_stats_head' to 'events_stats_count'
HEAD /api/events/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'events_head' to 'events_count'
HEAD /api/events/count/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'events_count_head' to 'events_count_count'
HEAD /api/events/event_groups/
- Description changed from 'Returns a list of groups with event types. Group is used in exclude_features query param.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'events_event_groups_head' to 'events_event_groups_count'
HEAD /api/events/scope_types/
- Description changed from 'Returns a list of scope types acceptable by events filter.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'events_scope_types_head' to 'events_scope_types_count'
GET /api/financial-reports/
- Modified query param: query
- Description changed from '' to 'Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number'
HEAD /api/financial-reports/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'financial_reports_head' to 'financial_reports_count'
- Modified query param: query
- Description changed from '' to 'Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number'
GET /api/freeipa-profiles/
- Modified query param: query
- Description changed from '' to 'Filter by username, user UUID, first name or last name'
HEAD /api/freeipa-profiles/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'freeipa_profiles_head' to 'freeipa_profiles_count'
- Modified query param: query
- Description changed from '' to 'Filter by username, user UUID, first name or last name'
HEAD /api/google-auth/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'google_auth_head' to 'google_auth_count'
HEAD /api/google-auth/callback/
- Description changed from 'Callback endpoint for Google authorization.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'google_auth_callback_head' to 'google_auth_callback_count'
GET /api/hooks-email/
- Modified query param: query
- Description changed from '' to 'Filter by author name, username and email'
HEAD /api/hooks-email/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'hooks_email_head' to 'hooks_email_count'
- Modified query param: query
- Description changed from '' to 'Filter by author name, username and email'
GET /api/hooks-web/
- Modified query param: query
- Description changed from '' to 'Filter by author name, username and email'
HEAD /api/hooks-web/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'hooks_web_head' to 'hooks_web_count'
- Modified query param: query
- Description changed from '' to 'Filter by author name, username and email'
HEAD /api/hooks/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'hooks_head' to 'hooks_count'
HEAD /api/identity-providers/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'identity_providers_head' to 'identity_providers_count'
GET /api/invoice-items/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/invoice-items/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'invoice_items_head' to 'invoice_items_count'
HEAD /api/invoice-items/costs/
- Description changed from 'Get costs breakdown for a project by year and month.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'invoice_items_costs_head' to 'invoice_items_costs_count'
HEAD /api/invoice-items/customer_costs_for_period/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'invoice_items_customer_costs_for_period_head' to 'invoice_items_customer_costs_for_period_count'
HEAD /api/invoice-items/project_costs_for_period/
- Description changed from 'Get resource cost breakdown for a project over a specified period.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'invoice_items_project_costs_for_period_head' to 'invoice_items_project_costs_for_period_count'
HEAD /api/invoice-items/total_price/
- Description changed from 'Calculate total price for filtered invoice items.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'invoice_items_total_price_head' to 'invoice_items_total_price_count'
GET /api/invoice-items/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/invoice-items/{uuid}/consumptions/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/invoices/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: items
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/invoices/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'invoices_head' to 'invoices_count'
HEAD /api/invoices/growth/
- Description changed from 'Analyze invoice trends over time by comparing monthly totals for major customers versus others over the past year.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'invoices_growth_head' to 'invoices_growth_count'
GET /api/invoices/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: items
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/invoices/{uuid}/items/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/invoices/{uuid}/paid/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: items
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/keycloak-groups/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'keycloak_groups_head' to 'keycloak_groups_count'
HEAD /api/keycloak-user-group-memberships/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'keycloak_user_group_memberships_head' to 'keycloak_user_group_memberships_count'
HEAD /api/keys/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'keys_head' to 'keys_count'
GET /api/lexis-links/
- Modified query param: query
- Description changed from '' to 'Filter by robot account username or type'
HEAD /api/lexis-links/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'lexis_links_head' to 'lexis_links_count'
- Modified query param: query
- Description changed from '' to 'Filter by robot account username or type'
HEAD /api/marketplace-categories/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_categories_head' to 'marketplace_categories_count'
HEAD /api/marketplace-category-columns/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_category_columns_head' to 'marketplace_category_columns_count'
HEAD /api/marketplace-category-component-usages/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_category_component_usages_head' to 'marketplace_category_component_usages_count'
HEAD /api/marketplace-category-components/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_category_components_head' to 'marketplace_category_components_count'
HEAD /api/marketplace-category-groups/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_category_groups_head' to 'marketplace_category_groups_count'
HEAD /api/marketplace-category-help-articles/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_category_help_articles_head' to 'marketplace_category_help_articles_count'
HEAD /api/marketplace-component-usages/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_component_usages_head' to 'marketplace_component_usages_count'
HEAD /api/marketplace-component-user-usages/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_component_user_usages_head' to 'marketplace_component_user_usages_count'
HEAD /api/marketplace-customer-estimated-cost-policies/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_customer_estimated_cost_policies_head' to 'marketplace_customer_estimated_cost_policies_count'
HEAD /api/marketplace-customer-estimated-cost-policies/actions/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_customer_estimated_cost_policies_actions_head' to 'marketplace_customer_estimated_cost_policies_actions_count'
HEAD /api/marketplace-customer-service-accounts/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_customer_service_accounts_head' to 'marketplace_customer_service_accounts_count'
HEAD /api/marketplace-integration-statuses/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_integration_statuses_head' to 'marketplace_integration_statuses_count'
HEAD /api/marketplace-offering-estimated-cost-policies/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_estimated_cost_policies_head' to 'marketplace_offering_estimated_cost_policies_count'
HEAD /api/marketplace-offering-estimated-cost-policies/actions/
- Description changed from 'List available actions for OfferingEstimatedCostPolicy' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_estimated_cost_policies_actions_head' to 'marketplace_offering_estimated_cost_policies_actions_count'
HEAD /api/marketplace-offering-files/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_files_head' to 'marketplace_offering_files_count'
HEAD /api/marketplace-offering-permissions-log/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_permissions_log_head' to 'marketplace_offering_permissions_log_count'
HEAD /api/marketplace-offering-permissions/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_permissions_head' to 'marketplace_offering_permissions_count'
HEAD /api/marketplace-offering-referrals/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_referrals_head' to 'marketplace_offering_referrals_count'
HEAD /api/marketplace-offering-usage-policies/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_usage_policies_head' to 'marketplace_offering_usage_policies_count'
HEAD /api/marketplace-offering-usage-policies/actions/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_usage_policies_actions_head' to 'marketplace_offering_usage_policies_actions_count'
HEAD /api/marketplace-offering-user-roles/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_user_roles_head' to 'marketplace_offering_user_roles_count'
GET /api/marketplace-offering-users/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_provider_comment_url]
- Modified query param: query
- Description changed from '' to 'Search by offering name, username or user name'
- Modified query param: state
- Schema changed
- Items changed
- New enum values: [Error creating Error deleting]
- Deleted enum values: [Error]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: service_provider_comment_url
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OfferingUserStateEnum
- New enum values: [Error creating Error deleting]
- Deleted enum values: [Error]
HEAD /api/marketplace-offering-users/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_offering_users_head' to 'marketplace_offering_users_count'
- Modified query param: query
- Description changed from '' to 'Search by offering name, username or user name'
- Modified query param: state
- Schema changed
- Items changed
- New enum values: [Error creating Error deleting]
- Deleted enum values: [Error]
POST /api/marketplace-offering-users/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_provider_comment_url
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OfferingUserStateEnum
- New enum values: [Error creating Error deleting]
- Deleted enum values: [Error]
GET /api/marketplace-offering-users/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [service_provider_comment_url]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_provider_comment_url
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OfferingUserStateEnum
- New enum values: [Error creating Error deleting]
- Deleted enum values: [Error]
PATCH /api/marketplace-offering-users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_provider_comment_url
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OfferingUserStateEnum
- New enum values: [Error creating Error deleting]
- Deleted enum values: [Error]
PUT /api/marketplace-offering-users/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: service_provider_comment_url
- Modified property: state
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OfferingUserStateEnum
- New enum values: [Error creating Error deleting]
- Deleted enum values: [Error]
POST /api/marketplace-offering-users/{uuid}/set_pending_account_linking/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: comment_url
POST /api/marketplace-offering-users/{uuid}/set_pending_additional_validation/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: comment_url
GET /api/marketplace-orders/
- Modified query param: query
- Description changed from '' to 'Search by order UUID, project name or resource name'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
HEAD /api/marketplace-orders/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_orders_head' to 'marketplace_orders_count'
- Modified query param: query
- Description changed from '' to 'Search by order UUID, project name or resource name'
POST /api/marketplace-orders/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-orders/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/marketplace-plan-components/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
HEAD /api/marketplace-plan-components/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_plan_components_head' to 'marketplace_plan_components_count'
GET /api/marketplace-plan-components/{id}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-plans/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/marketplace-plans/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_plans_head' to 'marketplace_plans_count'
POST /api/marketplace-plans/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/marketplace-plans/usage_stats/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_plans_usage_stats_head' to 'marketplace_plans_usage_stats_count'
GET /api/marketplace-plans/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PATCH /api/marketplace-plans/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PUT /api/marketplace-plans/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/marketplace-project-estimated-cost-policies/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_project_estimated_cost_policies_head' to 'marketplace_project_estimated_cost_policies_count'
HEAD /api/marketplace-project-estimated-cost-policies/actions/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_project_estimated_cost_policies_actions_head' to 'marketplace_project_estimated_cost_policies_actions_count'
HEAD /api/marketplace-project-service-accounts/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_project_service_accounts_head' to 'marketplace_project_service_accounts_count'
HEAD /api/marketplace-project-update-requests/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_project_update_requests_head' to 'marketplace_project_update_requests_count'
GET /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/marketplace-provider-offerings/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_provider_offerings_head' to 'marketplace_provider_offerings_count'
POST /api/marketplace-provider-offerings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/marketplace-provider-offerings/groups/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_provider_offerings_groups_head' to 'marketplace_provider_offerings_groups_count'
GET /api/marketplace-provider-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/marketplace-provider-offerings/{uuid}/create_offering_component/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: additional_details
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-provider-offerings/{uuid}/list_customer_projects/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: end_date_requested_by
- ReadOnly changed from false to true
GET /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/marketplace-provider-offerings/{uuid}/move_offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/marketplace-provider-offerings/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-provider-offerings/{uuid}/orders/{order_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/marketplace-provider-offerings/{uuid}/update_offering_component/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/marketplace-provider-resources/
- Modified query param: query
- Description changed from 'Query' to 'Search by resource UUID, name, backend ID, effective ID, IPs or hypervisor'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
HEAD /api/marketplace-provider-resources/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_provider_resources_head' to 'marketplace_provider_resources_count'
- Modified query param: query
- Description changed from 'Query' to 'Search by resource UUID, name, backend ID, effective ID, IPs or hypervisor'
GET /api/marketplace-provider-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-provider-resources/{uuid}/details/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
POST /api/marketplace-provider-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-public-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/marketplace-public-offerings/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_public_offerings_head' to 'marketplace_public_offerings_count'
GET /api/marketplace-public-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/marketplace-public-offerings/{uuid}/plans/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/marketplace-public-offerings/{uuid}/plans/{plan_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/marketplace-remote-synchronisations/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_remote_synchronisations_head' to 'marketplace_remote_synchronisations_count'
HEAD /api/marketplace-resource-users/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_resource_users_head' to 'marketplace_resource_users_count'
GET /api/marketplace-resources/
- Modified query param: query
- Description changed from 'Query' to 'Search by resource UUID, name, backend ID, effective ID, IPs or hypervisor'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
HEAD /api/marketplace-resources/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_resources_head' to 'marketplace_resources_count'
- Modified query param: query
- Description changed from 'Query' to 'Search by resource UUID, name, backend ID, effective ID, IPs or hypervisor'
GET /api/marketplace-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-resources/{uuid}/details/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
POST /api/marketplace-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/marketplace-robot-accounts/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_robot_accounts_head' to 'marketplace_robot_accounts_count'
HEAD /api/marketplace-screenshots/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_screenshots_head' to 'marketplace_screenshots_count'
HEAD /api/marketplace-script-async-dry-run/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_script_async_dry_run_head' to 'marketplace_script_async_dry_run_count'
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/marketplace-script-dry-run/{uuid}/run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/marketplace-sections/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_sections_head' to 'marketplace_sections_count'
HEAD /api/marketplace-service-providers/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_service_providers_head' to 'marketplace_service_providers_count'
GET /api/marketplace-service-providers/{service_provider_uuid}/customer_projects/
- Modified query param: query
- Description changed from '' to 'Filter by name, UUID, backend ID or resource effective ID'
GET /api/marketplace-service-providers/{service_provider_uuid}/customers/
- Modified query param: query
- Description changed from '' to 'Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number'
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plans
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/marketplace-service-providers/{service_provider_uuid}/projects/
- Modified query param: query
- Description changed from '' to 'Filter by name, UUID, backend ID or resource effective ID'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: end_date_requested_by
- ReadOnly changed from false to true
GET /api/marketplace-service-providers/{service_provider_uuid}/user_customers/
- Modified query param: query
- Description changed from '' to 'Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number'
GET /api/marketplace-service-providers/{service_provider_uuid}/users/
- Modified query param: query
- Description changed from '' to 'Filter by first name, last name, civil number, username or email'
HEAD /api/marketplace-stats/component_usages/
- Description changed from 'Return component usages for current month.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_component_usages_head' to 'marketplace_stats_component_usages_count'
HEAD /api/marketplace-stats/component_usages_per_month/
- Description changed from 'Return component usages per month.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_component_usages_per_month_head' to 'marketplace_stats_component_usages_per_month_count'
HEAD /api/marketplace-stats/component_usages_per_project/
- Description changed from 'Return component usages per project.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_component_usages_per_project_head' to 'marketplace_stats_component_usages_per_project_count'
HEAD /api/marketplace-stats/count_active_resources_grouped_by_offering/
- Description changed from 'Count active resources grouped by offering.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_count_active_resources_grouped_by_offering_head' to 'marketplace_stats_count_active_resources_grouped_by_offering_count'
HEAD /api/marketplace-stats/count_active_resources_grouped_by_offering_country/
- Description changed from 'Count active resources grouped by offering country.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_count_active_resources_grouped_by_offering_country_head' to 'marketplace_stats_count_active_resources_grouped_by_offering_country_count'
HEAD /api/marketplace-stats/count_active_resources_grouped_by_organization_group/
- Description changed from 'Count active resources grouped by organization group.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_count_active_resources_grouped_by_organization_group_head' to 'marketplace_stats_count_active_resources_grouped_by_organization_group_count'
HEAD /api/marketplace-stats/count_projects_grouped_by_provider_and_industry_flag/
- Description changed from 'Count projects grouped by provider and industry flag' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_count_projects_grouped_by_provider_and_industry_flag_head' to 'marketplace_stats_count_projects_grouped_by_provider_and_industry_flag_count'
HEAD /api/marketplace-stats/count_projects_grouped_by_provider_and_oecd/
- Description changed from 'Count projects grouped by provider and OECD code' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_count_projects_grouped_by_provider_and_oecd_head' to 'marketplace_stats_count_projects_grouped_by_provider_and_oecd_count'
HEAD /api/marketplace-stats/count_projects_of_service_providers/
- Description changed from 'Count projects of service providers.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_count_projects_of_service_providers_head' to 'marketplace_stats_count_projects_of_service_providers_count'
HEAD /api/marketplace-stats/count_projects_of_service_providers_grouped_by_oecd/
- Description changed from 'Count projects of service providers grouped by OECD.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_count_projects_of_service_providers_grouped_by_oecd_head' to 'marketplace_stats_count_projects_of_service_providers_grouped_by_oecd_count'
HEAD /api/marketplace-stats/count_unique_users_connected_with_active_resources_of_service_provider/
- Description changed from 'Count unique users connected with active resources of service provider.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_count_unique_users_connected_with_active_resources_of_service_provider_head' to 'marketplace_stats_count_unique_users_connected_with_active_resources_of_service_provider_count'
HEAD /api/marketplace-stats/count_users_of_service_providers/
- Description changed from 'Count users of service providers.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_count_users_of_service_providers_head' to 'marketplace_stats_count_users_of_service_providers_count'
HEAD /api/marketplace-stats/customer_member_count/
- Description changed from 'Return count of customer members.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_customer_member_count_head' to 'marketplace_stats_customer_member_count_count'
HEAD /api/marketplace-stats/offerings_counter_stats/
- Description changed from 'Retrieve statistics about the number of offerings, grouped by category and service provider.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_offerings_counter_stats_head' to 'marketplace_stats_offerings_counter_stats_count'
HEAD /api/marketplace-stats/organization_project_count/
- Description changed from 'Return project count per organization.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_organization_project_count_head' to 'marketplace_stats_organization_project_count_count'
HEAD /api/marketplace-stats/organization_resource_count/
- Description changed from 'Return resource count per organization.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_organization_resource_count_head' to 'marketplace_stats_organization_resource_count_count'
HEAD /api/marketplace-stats/projects_limits_grouped_by_industry_flag/
- Description changed from 'Group project limits by industry flag.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_projects_limits_grouped_by_industry_flag_head' to 'marketplace_stats_projects_limits_grouped_by_industry_flag_count'
HEAD /api/marketplace-stats/projects_limits_grouped_by_oecd/
- Description changed from 'Group project limits by OECD code.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_projects_limits_grouped_by_oecd_head' to 'marketplace_stats_projects_limits_grouped_by_oecd_count'
HEAD /api/marketplace-stats/projects_usages_grouped_by_industry_flag/
- Description changed from 'Group project usages by industry flag.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_projects_usages_grouped_by_industry_flag_head' to 'marketplace_stats_projects_usages_grouped_by_industry_flag_count'
HEAD /api/marketplace-stats/projects_usages_grouped_by_oecd/
- Description changed from 'Group project usages by OECD code.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_projects_usages_grouped_by_oecd_head' to 'marketplace_stats_projects_usages_grouped_by_oecd_count'
HEAD /api/marketplace-stats/resources_limits/
- Description changed from 'Return resources limits per offering.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_resources_limits_head' to 'marketplace_stats_resources_limits_count'
HEAD /api/marketplace-stats/total_cost_of_active_resources_per_offering/
- Description changed from 'Total cost of active resources per offering.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'marketplace_stats_total_cost_of_active_resources_per_offering_head' to 'marketplace_stats_total_cost_of_active_resources_per_offering_count'
HEAD /api/notification-messages-templates/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'notification_messages_templates_head' to 'notification_messages_templates_count'
GET /api/notification-messages/
- Modified query param: query
- Description changed from '' to 'Filter by key or description'
HEAD /api/notification-messages/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'notification_messages_head' to 'notification_messages_count'
- Modified query param: query
- Description changed from '' to 'Filter by key or description'
HEAD /api/openstack-backups/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_backups_head' to 'openstack_backups_count'
HEAD /api/openstack-flavors/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_flavors_head' to 'openstack_flavors_count'
HEAD /api/openstack-flavors/usage_stats/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_flavors_usage_stats_head' to 'openstack_flavors_usage_stats_count'
HEAD /api/openstack-floating-ips/
- Description changed from 'Status DOWN means that floating IP is not linked to a VM, status ACTIVE means that it is in use.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_floating_ips_head' to 'openstack_floating_ips_count'
HEAD /api/openstack-images/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_images_head' to 'openstack_images_count'
HEAD /api/openstack-images/usage_stats/
- Description changed from '' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_images_usage_stats_head' to 'openstack_images_usage_stats_count'
HEAD /api/openstack-instance-availability-zones/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_instance_availability_zones_head' to 'openstack_instance_availability_zones_count'
GET /api/openstack-instances/
- Modified query param: query
- Description changed from '' to 'Search by name, internal IP, or external IP'
HEAD /api/openstack-instances/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_instances_head' to 'openstack_instances_count'
- Modified query param: query
- Description changed from '' to 'Search by name, internal IP, or external IP'
HEAD /api/openstack-marketplace-tenants/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_marketplace_tenants_head' to 'openstack_marketplace_tenants_count'
HEAD /api/openstack-migrations/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_migrations_head' to 'openstack_migrations_count'
HEAD /api/openstack-network-rbac-policies/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_network_rbac_policies_head' to 'openstack_network_rbac_policies_count'
HEAD /api/openstack-networks/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_networks_head' to 'openstack_networks_count'
GET /api/openstack-ports/
- Modified query param: query
- Description changed from 'Query' to 'Search by name, MAC address or backend ID'
HEAD /api/openstack-ports/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_ports_head' to 'openstack_ports_count'
- Modified query param: query
- Description changed from 'Query' to 'Search by name, MAC address or backend ID'
HEAD /api/openstack-routers/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_routers_head' to 'openstack_routers_count'
GET /api/openstack-security-groups/
- Modified query param: query
- Description changed from '' to 'Search by name or description'
HEAD /api/openstack-security-groups/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_security_groups_head' to 'openstack_security_groups_count'
- Modified query param: query
- Description changed from '' to 'Search by name or description'
HEAD /api/openstack-server-groups/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_server_groups_head' to 'openstack_server_groups_count'
HEAD /api/openstack-snapshots/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_snapshots_head' to 'openstack_snapshots_count'
HEAD /api/openstack-subnets/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_subnets_head' to 'openstack_subnets_count'
HEAD /api/openstack-tenants/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_tenants_head' to 'openstack_tenants_count'
HEAD /api/openstack-volume-availability-zones/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_volume_availability_zones_head' to 'openstack_volume_availability_zones_count'
HEAD /api/openstack-volume-types/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_volume_types_head' to 'openstack_volume_types_count'
HEAD /api/openstack-volume-types/names/
- Description changed from 'Return a list of unique volume type names.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_volume_types_names_head' to 'openstack_volume_types_names_count'
HEAD /api/openstack-volumes/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'openstack_volumes_head' to 'openstack_volumes_count'
HEAD /api/organization-groups/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'organization_groups_head' to 'organization_groups_count'
HEAD /api/payment-profiles/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'payment_profiles_head' to 'payment_profiles_count'
HEAD /api/payments/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'payments_head' to 'payments_count'
HEAD /api/project-credits/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'project_credits_head' to 'project_credits_count'
HEAD /api/project-quotas/
- Description changed from 'List project quotas.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'project_quotas_head' to 'project_quotas_count'
HEAD /api/project-types/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'project_types_head' to 'project_types_count'
GET /api/projects/
- Modified query param: query
- Description changed from '' to 'Filter by name, UUID, backend ID or resource effective ID'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: end_date_requested_by
- ReadOnly changed from false to true
HEAD /api/projects/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'projects_head' to 'projects_count'
- Modified query param: query
- Description changed from '' to 'Filter by name, UUID, backend ID or resource effective ID'
POST /api/projects/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: end_date_requested_by
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: end_date_requested_by
- ReadOnly changed from false to true
GET /api/projects/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: end_date_requested_by
- ReadOnly changed from false to true
PATCH /api/projects/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: end_date_requested_by
- ReadOnly changed from false to true
PUT /api/projects/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: end_date_requested_by
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: end_date_requested_by
- ReadOnly changed from false to true
POST /api/projects/{uuid}/move_project/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: end_date_requested_by
- ReadOnly changed from false to true
GET /api/promotions-campaigns/
- Modified query param: query
- Description changed from '' to 'Search by name or coupon code'
HEAD /api/promotions-campaigns/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'promotions_campaigns_head' to 'promotions_campaigns_count'
- Modified query param: query
- Description changed from '' to 'Search by name or coupon code'
GET /api/promotions-campaigns/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/promotions-campaigns/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
- Modified property: plan_unit
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BillingUnit
- New enum values: [quarter]
GET /api/proposal-proposals/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: can_submit
- New required property: compliance_status
- Properties changed
- New property: can_submit
- New property: compliance_status
HEAD /api/proposal-proposals/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'proposal_proposals_head' to 'proposal_proposals_count'
POST /api/proposal-proposals/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: can_submit
- New required property: compliance_status
- Properties changed
- New property: can_submit
- New property: compliance_status
GET /api/proposal-proposals/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: can_submit
- New required property: compliance_status
- Properties changed
- New property: can_submit
- New property: compliance_status
GET /api/proposal-proposals/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/proposal-proposals/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PATCH /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PUT /api/proposal-proposals/{uuid}/resources/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/proposal-protected-calls/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [compliance_checklist compliance_checklist_name]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: compliance_checklist
- New property: compliance_checklist_name
- Modified property: offerings
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Modified property: resource_templates
- Items changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/proposal-protected-calls/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'proposal_protected_calls_head' to 'proposal_protected_calls_count'
POST /api/proposal-protected-calls/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compliance_checklist
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compliance_checklist
- New property: compliance_checklist_name
- Modified property: offerings
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Modified property: resource_templates
- Items changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/proposal-protected-calls/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [compliance_checklist compliance_checklist_name]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compliance_checklist
- New property: compliance_checklist_name
- Modified property: offerings
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Modified property: resource_templates
- Items changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PATCH /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compliance_checklist
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compliance_checklist
- New property: compliance_checklist_name
- Modified property: offerings
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Modified property: resource_templates
- Items changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PUT /api/proposal-protected-calls/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compliance_checklist
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compliance_checklist
- New property: compliance_checklist_name
- Modified property: offerings
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Modified property: resource_templates
- Items changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/proposal-protected-calls/{uuid}/activate/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
POST /api/proposal-protected-calls/{uuid}/archive/
- Responses changed
- Modified response: 200
- Description changed from 'No response body' to ''
- Content changed
- New media type: application/json
GET /api/proposal-protected-calls/{uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/proposal-protected-calls/{uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PATCH /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PUT /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/proposal-protected-calls/{uuid}/resource_templates/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/proposal-protected-calls/{uuid}/resource_templates/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PATCH /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
PUT /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compliance_checklist
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: compliance_checklist
- New property: compliance_checklist_name
- Modified property: offerings
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Modified property: resource_templates
- Items changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/proposal-public-calls/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: offerings
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Modified property: resource_templates
- Items changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/proposal-public-calls/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'proposal_public_calls_head' to 'proposal_public_calls_count'
GET /api/proposal-public-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: offerings
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
- Modified property: resource_templates
- Items changed
- Properties changed
- Modified property: requested_offering_plan
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/proposal-requested-offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/proposal-requested-offerings/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'proposal_requested_offerings_head' to 'proposal_requested_offerings_count'
GET /api/proposal-requested-offerings/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
GET /api/proposal-requested-resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/proposal-requested-resources/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'proposal_requested_resources_head' to 'proposal_requested_resources_count'
GET /api/proposal-requested-resources/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: requested_offering
- Property 'AllOf' changed
- Modified schema: #/components/schemas/NestedRequestedOffering
- Properties changed
- Modified property: components
- Items changed
- Properties changed
- Modified property: limit_period
- Property 'OneOf' changed
- Modified schema: #/components/schemas/LimitPeriodEnum
- New enum values: [quarterly]
- Modified property: plan_details
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasePublicPlan
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/proposal-reviews/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'proposal_reviews_head' to 'proposal_reviews_count'
GET /api/provider-invoice-items/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/provider-invoice-items/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'provider_invoice_items_head' to 'provider_invoice_items_count'
GET /api/provider-invoice-items/{id}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: unit
- New enum values: [quarter]
HEAD /api/rancher-apps/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_apps_head' to 'rancher_apps_count'
HEAD /api/rancher-catalogs/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_catalogs_head' to 'rancher_catalogs_count'
HEAD /api/rancher-cluster-security-groups/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_cluster_security_groups_head' to 'rancher_cluster_security_groups_count'
HEAD /api/rancher-cluster-templates/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_cluster_templates_head' to 'rancher_cluster_templates_count'
HEAD /api/rancher-clusters/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_clusters_head' to 'rancher_clusters_count'
HEAD /api/rancher-hpas/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_hpas_head' to 'rancher_hpas_count'
HEAD /api/rancher-ingresses/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_ingresses_head' to 'rancher_ingresses_count'
HEAD /api/rancher-namespaces/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_namespaces_head' to 'rancher_namespaces_count'
HEAD /api/rancher-nodes/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_nodes_head' to 'rancher_nodes_count'
HEAD /api/rancher-projects/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_projects_head' to 'rancher_projects_count'
HEAD /api/rancher-role-templates/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_role_templates_head' to 'rancher_role_templates_count'
HEAD /api/rancher-services/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_services_head' to 'rancher_services_count'
HEAD /api/rancher-templates/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_templates_head' to 'rancher_templates_count'
HEAD /api/rancher-users/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_users_head' to 'rancher_users_count'
HEAD /api/rancher-workloads/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'rancher_workloads_head' to 'rancher_workloads_count'
HEAD /api/roles/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'roles_head' to 'roles_count'
HEAD /api/service-settings/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'service_settings_head' to 'service_settings_count'
HEAD /api/slurm-allocation-user-usage/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'slurm_allocation_user_usage_head' to 'slurm_allocation_user_usage_count'
HEAD /api/slurm-allocations/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'slurm_allocations_head' to 'slurm_allocations_count'
HEAD /api/slurm-associations/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'slurm_associations_head' to 'slurm_associations_count'
HEAD /api/slurm-jobs/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'slurm_jobs_head' to 'slurm_jobs_count'
HEAD /api/support-attachments/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'support_attachments_head' to 'support_attachments_count'
HEAD /api/support-comments/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'support_comments_head' to 'support_comments_count'
HEAD /api/support-feedbacks/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'support_feedbacks_head' to 'support_feedbacks_count'
HEAD /api/support-issues/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'support_issues_head' to 'support_issues_count'
HEAD /api/support-priorities/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'support_priorities_head' to 'support_priorities_count'
HEAD /api/support-templates/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'support_templates_head' to 'support_templates_count'
HEAD /api/support-users/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'support_users_head' to 'support_users_count'
HEAD /api/user-agreements/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'user_agreements_head' to 'user_agreements_count'
HEAD /api/user-group-invitations/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'user_group_invitations_head' to 'user_group_invitations_count'
HEAD /api/user-invitations/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'user_invitations_head' to 'user_invitations_count'
HEAD /api/user-permission-requests/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'user_permission_requests_head' to 'user_permission_requests_count'
HEAD /api/user-permissions/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'user_permissions_head' to 'user_permissions_count'
GET /api/users/
- Modified query param: query
- Description changed from '' to 'Filter by first name, last name, civil number, username or email'
HEAD /api/users/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'users_head' to 'users_count'
- Modified query param: query
- Description changed from '' to 'Filter by first name, last name, civil number, username or email'
HEAD /api/users/me/
- Description changed from 'Get current user details, including authentication token.' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'users_me_head' to 'users_me_count'
HEAD /api/vmware-clusters/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'vmware_clusters_head' to 'vmware_clusters_count'
HEAD /api/vmware-datastores/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'vmware_datastores_head' to 'vmware_datastores_count'
HEAD /api/vmware-disks/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'vmware_disks_head' to 'vmware_disks_count'
HEAD /api/vmware-folders/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'vmware_folders_head' to 'vmware_folders_count'
HEAD /api/vmware-networks/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'vmware_networks_head' to 'vmware_networks_count'
HEAD /api/vmware-ports/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'vmware_ports_head' to 'vmware_ports_count'
HEAD /api/vmware-templates/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'vmware_templates_head' to 'vmware_templates_count'
HEAD /api/vmware-virtual-machine/
- Description changed from 'Mixin to optimize HEAD requests for DRF views bypassing serializer processing' to 'Get number of items in the collection matching the request parameters.'
- OperationID changed from 'vmware_virtual_machine_head' to 'vmware_virtual_machine_count'
OpenAPI schema diff - 7.7.6
For version 7.7.6
New Endpoints: 11
GET /api/marketplace-offering-users/{uuid}/checklist/
GET /api/marketplace-offering-users/{uuid}/checklist_review/
GET /api/marketplace-offering-users/{uuid}/completion_review_status/
GET /api/marketplace-offering-users/{uuid}/completion_status/
POST /api/marketplace-offering-users/{uuid}/submit_answers/
GET /api/marketplace-service-providers/{service_provider_uuid}/compliance/compliance_overview/
GET /api/marketplace-service-providers/{service_provider_uuid}/compliance/offering_users/
GET /api/marketplace-service-providers/{service_provider_uuid}/project_service_accounts/
GET /api/public-maintenance-announcements/
HEAD /api/public-maintenance-announcements/
GET /api/public-maintenance-announcements/{uuid}/
Deleted Endpoints: None
Modified Endpoints: 130
GET /api/admin-announcements/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [maintenance_affected_offerings maintenance_name maintenance_scheduled_end maintenance_scheduled_start maintenance_service_provider maintenance_state maintenance_type maintenance_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: maintenance_affected_offerings
- New property: maintenance_name
- New property: maintenance_scheduled_end
- New property: maintenance_scheduled_start
- New property: maintenance_service_provider
- New property: maintenance_state
- New property: maintenance_type
- New property: maintenance_uuid
POST /api/admin-announcements/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: maintenance_affected_offerings
- New property: maintenance_name
- New property: maintenance_scheduled_end
- New property: maintenance_scheduled_start
- New property: maintenance_service_provider
- New property: maintenance_state
- New property: maintenance_type
- New property: maintenance_uuid
GET /api/admin-announcements/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [maintenance_affected_offerings maintenance_name maintenance_scheduled_end maintenance_scheduled_start maintenance_service_provider maintenance_state maintenance_type maintenance_uuid]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: maintenance_affected_offerings
- New property: maintenance_name
- New property: maintenance_scheduled_end
- New property: maintenance_scheduled_start
- New property: maintenance_service_provider
- New property: maintenance_state
- New property: maintenance_type
- New property: maintenance_uuid
PATCH /api/admin-announcements/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: maintenance_affected_offerings
- New property: maintenance_name
- New property: maintenance_scheduled_end
- New property: maintenance_scheduled_start
- New property: maintenance_service_provider
- New property: maintenance_state
- New property: maintenance_type
- New property: maintenance_uuid
PUT /api/admin-announcements/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: maintenance_affected_offerings
- New property: maintenance_name
- New property: maintenance_scheduled_end
- New property: maintenance_scheduled_start
- New property: maintenance_service_provider
- New property: maintenance_state
- New property: maintenance_type
- New property: maintenance_uuid
GET /api/booking-offerings/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: has_compliance_requirements
GET /api/booking-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/customers/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [organization_groups users_count]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: organization_groups
- Deleted property: users_count
POST /api/customers/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: organization_groups
- Deleted property: users_count
GET /api/customers/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [organization_groups users_count]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: organization_groups
- Deleted property: users_count
PATCH /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: organization_groups
- Deleted property: users_count
PUT /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: organization_groups
- Deleted property: users_count
POST /api/marketplace-orders/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: attributes
- Property 'OneOf' changed
- Schemas added: #/components/schemas/AzureVirtualMachineCreateOrderAttributes, #/components/schemas/AzureSQLServerCreateOrderAttributes, #/components/schemas/OpenStackTenantCreateOrderAttributes, #/components/schemas/OpenStackInstanceCreateOrderAttributes, #/components/schemas/OpenStackVolumeCreateOrderAttributes, #/components/schemas/MarketplaceRancherCreateOrderAttributes, #/components/schemas/MarketplaceManagedRancherCreateOrderAttributes, #/components/schemas/SlurmInvoicesSlurmPackageCreateOrderAttributes, #/components/schemas/VMwareVirtualMachineCreateOrderAttributes
- Description changed from '' to 'Attributes structure depends on the offering type specified in the parent object'
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-project-update-requests/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: review_comment
- Description changed from '' to 'Optional comment provided during review'
- Modified property: reviewed_at
- Description changed from '' to 'Timestamp when the review was completed'
GET /api/marketplace-project-update-requests/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: review_comment
- Description changed from '' to 'Optional comment provided during review'
- Modified property: reviewed_at
- Description changed from '' to 'Timestamp when the review was completed'
GET /api/marketplace-provider-offerings/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: has_compliance_requirements
POST /api/marketplace-provider-offerings/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: has_compliance_requirements
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-provider-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
POST /api/marketplace-provider-offerings/{uuid}/move_offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-public-offerings/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-public-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [has_compliance_requirements]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/marketplace-robot-accounts/
- New query param: field
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- Deleted required property: backend_id
- Deleted required property: created
- Deleted required property: customer_name
- Deleted required property: customer_uuid
- Deleted required property: fingerprints
- Deleted required property: modified
- Deleted required property: offering_customer_uuid
- Deleted required property: offering_plugin_options
- Deleted required property: project_name
- Deleted required property: project_uuid
- Deleted required property: resource
- Deleted required property: resource_name
- Deleted required property: resource_uuid
- Deleted required property: responsible_user
- Deleted required property: type
- Deleted required property: url
- Deleted required property: user_keys
- Deleted required property: users
- Deleted required property: uuid
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
- Modified property: responsible_user
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasicUser
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
- Modified property: users
- Items changed
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
POST /api/marketplace-robot-accounts/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
GET /api/marketplace-robot-accounts/{uuid}/
- New query param: field
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: backend_id
- Deleted required property: created
- Deleted required property: customer_name
- Deleted required property: customer_uuid
- Deleted required property: fingerprints
- Deleted required property: modified
- Deleted required property: offering_customer_uuid
- Deleted required property: offering_plugin_options
- Deleted required property: project_name
- Deleted required property: project_uuid
- Deleted required property: resource
- Deleted required property: resource_name
- Deleted required property: resource_uuid
- Deleted required property: responsible_user
- Deleted required property: type
- Deleted required property: url
- Deleted required property: user_keys
- Deleted required property: users
- Deleted required property: uuid
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
- Modified property: responsible_user
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasicUser
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
- Modified property: users
- Items changed
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
PATCH /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
PUT /api/marketplace-robot-accounts/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
POST /api/marketplace-robot-accounts/{uuid}/set_state_creating/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: backend_id
- Deleted required property: created
- Deleted required property: customer_name
- Deleted required property: customer_uuid
- Deleted required property: fingerprints
- Deleted required property: modified
- Deleted required property: offering_customer_uuid
- Deleted required property: offering_plugin_options
- Deleted required property: project_name
- Deleted required property: project_uuid
- Deleted required property: resource
- Deleted required property: resource_name
- Deleted required property: resource_uuid
- Deleted required property: responsible_user
- Deleted required property: type
- Deleted required property: url
- Deleted required property: user_keys
- Deleted required property: users
- Deleted required property: uuid
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
- Modified property: responsible_user
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasicUser
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
- Modified property: users
- Items changed
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
POST /api/marketplace-robot-accounts/{uuid}/set_state_deleted/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: backend_id
- Deleted required property: created
- Deleted required property: customer_name
- Deleted required property: customer_uuid
- Deleted required property: fingerprints
- Deleted required property: modified
- Deleted required property: offering_customer_uuid
- Deleted required property: offering_plugin_options
- Deleted required property: project_name
- Deleted required property: project_uuid
- Deleted required property: resource
- Deleted required property: resource_name
- Deleted required property: resource_uuid
- Deleted required property: responsible_user
- Deleted required property: type
- Deleted required property: url
- Deleted required property: user_keys
- Deleted required property: users
- Deleted required property: uuid
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
- Modified property: responsible_user
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasicUser
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
- Modified property: users
- Items changed
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
POST /api/marketplace-robot-accounts/{uuid}/set_state_erred/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: backend_id
- Deleted required property: created
- Deleted required property: customer_name
- Deleted required property: customer_uuid
- Deleted required property: fingerprints
- Deleted required property: modified
- Deleted required property: offering_customer_uuid
- Deleted required property: offering_plugin_options
- Deleted required property: project_name
- Deleted required property: project_uuid
- Deleted required property: resource
- Deleted required property: resource_name
- Deleted required property: resource_uuid
- Deleted required property: responsible_user
- Deleted required property: type
- Deleted required property: url
- Deleted required property: user_keys
- Deleted required property: users
- Deleted required property: uuid
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
- Modified property: responsible_user
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasicUser
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
- Modified property: users
- Items changed
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
POST /api/marketplace-robot-accounts/{uuid}/set_state_ok/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: backend_id
- Deleted required property: created
- Deleted required property: customer_name
- Deleted required property: customer_uuid
- Deleted required property: fingerprints
- Deleted required property: modified
- Deleted required property: offering_customer_uuid
- Deleted required property: offering_plugin_options
- Deleted required property: project_name
- Deleted required property: project_uuid
- Deleted required property: resource
- Deleted required property: resource_name
- Deleted required property: resource_uuid
- Deleted required property: responsible_user
- Deleted required property: type
- Deleted required property: url
- Deleted required property: user_keys
- Deleted required property: users
- Deleted required property: uuid
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
- Modified property: responsible_user
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasicUser
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
- Modified property: users
- Items changed
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
POST /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: backend_id
- Deleted required property: created
- Deleted required property: customer_name
- Deleted required property: customer_uuid
- Deleted required property: fingerprints
- Deleted required property: modified
- Deleted required property: offering_customer_uuid
- Deleted required property: offering_plugin_options
- Deleted required property: project_name
- Deleted required property: project_uuid
- Deleted required property: resource
- Deleted required property: resource_name
- Deleted required property: resource_uuid
- Deleted required property: responsible_user
- Deleted required property: type
- Deleted required property: url
- Deleted required property: user_keys
- Deleted required property: users
- Deleted required property: uuid
- Properties changed
- Modified property: fingerprints
- Items changed
- Required changed
- Deleted required property: md5
- Deleted required property: sha256
- Deleted required property: sha512
- Modified property: responsible_user
- Property 'AllOf' changed
- Modified schema: #/components/schemas/BasicUser
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
- Modified property: users
- Items changed
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
POST /api/marketplace-script-dry-run/{uuid}/run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: has_compliance_requirements
GET /api/openstack-backups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: instance
- Description changed from '' to 'Instance that this backup is created from'
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_security_groups
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: flavor
- Description changed from '' to 'Flavor to be used for the restored instance. If not specified, original instance flavor will be used'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs that will be assigned to the restored instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance
- Description changed from '' to 'Instance that is being restored from the backup'
- Modified property: ports
- Description changed from '' to 'Network ports that will be attached to the restored instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'Security groups that will be assigned to the restored instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
GET /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance
- Description changed from '' to 'Instance that this backup is created from'
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_security_groups
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: flavor
- Description changed from '' to 'Flavor to be used for the restored instance. If not specified, original instance flavor will be used'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs that will be assigned to the restored instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance
- Description changed from '' to 'Instance that is being restored from the backup'
- Modified property: ports
- Description changed from '' to 'Network ports that will be attached to the restored instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'Security groups that will be assigned to the restored instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
PATCH /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance
- Description changed from '' to 'Instance that this backup is created from'
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_security_groups
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: flavor
- Description changed from '' to 'Flavor to be used for the restored instance. If not specified, original instance flavor will be used'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs that will be assigned to the restored instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance
- Description changed from '' to 'Instance that is being restored from the backup'
- Modified property: ports
- Description changed from '' to 'Network ports that will be attached to the restored instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'Security groups that will be assigned to the restored instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
PUT /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance
- Description changed from '' to 'Instance that this backup is created from'
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_security_groups
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: flavor
- Description changed from '' to 'Flavor to be used for the restored instance. If not specified, original instance flavor will be used'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs that will be assigned to the restored instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance
- Description changed from '' to 'Instance that is being restored from the backup'
- Modified property: ports
- Description changed from '' to 'Network ports that will be attached to the restored instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'Security groups that will be assigned to the restored instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
POST /api/openstack-backups/{uuid}/restore/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: security_groups
- Modified property: flavor
- Description changed from '' to 'Flavor to be used for the restored instance. If not specified, original instance flavor will be used'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs that will be assigned to the restored instance'
- Modified property: ports
- Description changed from '' to 'Network ports that will be attached to the restored instance'
- Items changed
- Properties changed
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: action_details
- Description changed from '' to 'Details about ongoing or completed actions'
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this instance is located'
- Modified property: availability_zone_name
- Description changed from '' to 'Name of the availability zone where instance is located'
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: connect_directly_to_external_network
- Description changed from '' to 'If True, instance will be connected directly to external network'
- Modified property: flavor_name
- Description changed from '' to 'Name of the flavor used by this instance'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs to assign to the instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: hypervisor_hostname
- Description changed from '' to 'Name of the hypervisor hosting this instance'
- Modified property: ports
- Description changed from '' to 'Network ports to attach to the instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'List of security groups to apply to the instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: server_group
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OpenStackNestedServerGroup
- Properties changed
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
- Description changed from '' to 'Server group for instance scheduling policy'
- Modified property: service_settings
- Description changed from '' to 'OpenStack provider settings'
- Modified property: tenant
- Description changed from '' to 'The OpenStack tenant to create the instance in'
- Modified property: tenant_uuid
- Description changed from '' to 'UUID of the OpenStack tenant'
- Modified property: volumes
- Description changed from '' to 'List of volumes attached to the instance'
- Items changed
- Properties changed
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
GET /api/openstack-floating-ips/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: backend_network_id
- Description changed from '' to 'ID of network in OpenStack where this floating IP is allocated'
- Modified property: external_address
- Description changed from 'An optional address that maps to floating IP's address' to 'Optional address that maps to floating IP's address in external networks'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this floating IP belongs to'
GET /api/openstack-floating-ips/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: backend_network_id
- Description changed from '' to 'ID of network in OpenStack where this floating IP is allocated'
- Modified property: external_address
- Description changed from 'An optional address that maps to floating IP's address' to 'Optional address that maps to floating IP's address in external networks'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this floating IP belongs to'
GET /api/openstack-instance-availability-zones/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: available
- Description changed from '' to 'Indicates whether this availability zone is available for instance provisioning'
GET /api/openstack-instance-availability-zones/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: available
- Description changed from '' to 'Indicates whether this availability zone is available for instance provisioning'
GET /api/openstack-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: action_details
- Description changed from '' to 'Details about ongoing or completed actions'
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this instance is located'
- Modified property: availability_zone_name
- Description changed from '' to 'Name of the availability zone where instance is located'
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: connect_directly_to_external_network
- Description changed from '' to 'If True, instance will be connected directly to external network'
- Modified property: flavor_name
- Description changed from '' to 'Name of the flavor used by this instance'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs to assign to the instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: hypervisor_hostname
- Description changed from '' to 'Name of the hypervisor hosting this instance'
- Modified property: ports
- Description changed from '' to 'Network ports to attach to the instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'List of security groups to apply to the instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: server_group
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OpenStackNestedServerGroup
- Properties changed
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
- Description changed from '' to 'Server group for instance scheduling policy'
- Modified property: service_settings
- Description changed from '' to 'OpenStack provider settings'
- Modified property: tenant
- Description changed from '' to 'The OpenStack tenant to create the instance in'
- Modified property: tenant_uuid
- Description changed from '' to 'UUID of the OpenStack tenant'
- Modified property: volumes
- Description changed from '' to 'List of volumes attached to the instance'
- Items changed
- Properties changed
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
GET /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: action_details
- Description changed from '' to 'Details about ongoing or completed actions'
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this instance is located'
- Modified property: availability_zone_name
- Description changed from '' to 'Name of the availability zone where instance is located'
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: connect_directly_to_external_network
- Description changed from '' to 'If True, instance will be connected directly to external network'
- Modified property: flavor_name
- Description changed from '' to 'Name of the flavor used by this instance'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs to assign to the instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: hypervisor_hostname
- Description changed from '' to 'Name of the hypervisor hosting this instance'
- Modified property: ports
- Description changed from '' to 'Network ports to attach to the instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'List of security groups to apply to the instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: server_group
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OpenStackNestedServerGroup
- Properties changed
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
- Description changed from '' to 'Server group for instance scheduling policy'
- Modified property: service_settings
- Description changed from '' to 'OpenStack provider settings'
- Modified property: tenant
- Description changed from '' to 'The OpenStack tenant to create the instance in'
- Modified property: tenant_uuid
- Description changed from '' to 'UUID of the OpenStack tenant'
- Modified property: volumes
- Description changed from '' to 'List of volumes attached to the instance'
- Items changed
- Properties changed
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
PATCH /api/openstack-instances/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: data_volume_type
- Description changed from '' to 'Volume type for the data volume'
- Modified property: data_volumes
- Description changed from '' to 'Additional data volumes to attach to the instance'
- Modified property: system_volume_type
- Description changed from '' to 'Volume type for the system volume'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: action_details
- Description changed from '' to 'Details about ongoing or completed actions'
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this instance is located'
- Modified property: availability_zone_name
- Description changed from '' to 'Name of the availability zone where instance is located'
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: connect_directly_to_external_network
- Description changed from '' to 'If True, instance will be connected directly to external network'
- Modified property: flavor_name
- Description changed from '' to 'Name of the flavor used by this instance'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs to assign to the instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: hypervisor_hostname
- Description changed from '' to 'Name of the hypervisor hosting this instance'
- Modified property: ports
- Description changed from '' to 'Network ports to attach to the instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'List of security groups to apply to the instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: server_group
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OpenStackNestedServerGroup
- Properties changed
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
- Description changed from '' to 'Server group for instance scheduling policy'
- Modified property: service_settings
- Description changed from '' to 'OpenStack provider settings'
- Modified property: tenant
- Description changed from '' to 'The OpenStack tenant to create the instance in'
- Modified property: tenant_uuid
- Description changed from '' to 'UUID of the OpenStack tenant'
- Modified property: volumes
- Description changed from '' to 'List of volumes attached to the instance'
- Items changed
- Properties changed
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
PUT /api/openstack-instances/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: data_volume_type
- Description changed from '' to 'Volume type for the data volume'
- Modified property: data_volumes
- Description changed from '' to 'Additional data volumes to attach to the instance'
- Modified property: system_volume_type
- Description changed from '' to 'Volume type for the system volume'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: action_details
- Description changed from '' to 'Details about ongoing or completed actions'
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this instance is located'
- Modified property: availability_zone_name
- Description changed from '' to 'Name of the availability zone where instance is located'
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: connect_directly_to_external_network
- Description changed from '' to 'If True, instance will be connected directly to external network'
- Modified property: flavor_name
- Description changed from '' to 'Name of the flavor used by this instance'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs to assign to the instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: hypervisor_hostname
- Description changed from '' to 'Name of the hypervisor hosting this instance'
- Modified property: ports
- Description changed from '' to 'Network ports to attach to the instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'List of security groups to apply to the instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: server_group
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OpenStackNestedServerGroup
- Properties changed
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
- Description changed from '' to 'Server group for instance scheduling policy'
- Modified property: service_settings
- Description changed from '' to 'OpenStack provider settings'
- Modified property: tenant
- Description changed from '' to 'The OpenStack tenant to create the instance in'
- Modified property: tenant_uuid
- Description changed from '' to 'UUID of the OpenStack tenant'
- Modified property: volumes
- Description changed from '' to 'List of volumes attached to the instance'
- Items changed
- Properties changed
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
POST /api/openstack-instances/{uuid}/backup/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance
- Description changed from '' to 'Instance that this backup is created from'
- Modified property: instance_floating_ips
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_ports
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance_security_groups
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: flavor
- Description changed from '' to 'Flavor to be used for the restored instance. If not specified, original instance flavor will be used'
- Modified property: floating_ips
- Description changed from '' to 'Floating IPs that will be assigned to the restored instance'
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: instance
- Description changed from '' to 'Instance that is being restored from the backup'
- Modified property: ports
- Description changed from '' to 'Network ports that will be attached to the restored instance'
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: security_groups
- Description changed from '' to 'Security groups that will be assigned to the restored instance'
- Items changed
- Properties changed
- Deleted property: description
- Deleted property: name
- Deleted property: rules
- Deleted property: state
- Modified property: url
- Format changed from 'uri' to ''
- ReadOnly changed from true to false
POST /api/openstack-instances/{uuid}/change_flavor/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: flavor
- Description changed from '' to 'The new flavor to use for the instance. Flavor change can only be done when instance is stopped.'
GET /api/openstack-instances/{uuid}/floating_ips/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: port_mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
GET /api/openstack-instances/{uuid}/ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
POST /api/openstack-instances/{uuid}/update_allowed_address_pairs/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: allowed_address_pairs
- Description changed from '' to 'List of allowed address pairs to set on the port. Each pair should contain 'ip_address' and optional 'mac_address'.'
- Modified property: subnet
- Description changed from '' to 'The subnet to update allowed address pairs for.'
POST /api/openstack-instances/{uuid}/update_ports/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ports
- Items changed
- Properties changed
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
POST /api/openstack-instances/{uuid}/update_security_groups/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Description changed from '' to 'List of security groups to be assigned to the instance.'
GET /api/openstack-network-rbac-policies/
- Modified query param: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access
'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access'
HEAD /api/openstack-network-rbac-policies/
- Modified query param: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access
'
GET /api/openstack-network-rbac-policies/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access'
GET /api/openstack-networks/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: is_external
- Description changed from '' to 'Defines whether this network is external (public) or internal (private)'
- Modified property: rbac_policies
- Items changed
- Properties changed
- Modified property: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access'
- Modified property: subnets
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this network belongs to'
- Modified property: type
- Description changed from '' to 'Network type, such as local, flat, vlan, vxlan, or gre'
GET /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_external
- Description changed from '' to 'Defines whether this network is external (public) or internal (private)'
- Modified property: rbac_policies
- Items changed
- Properties changed
- Modified property: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access'
- Modified property: subnets
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this network belongs to'
- Modified property: type
- Description changed from '' to 'Network type, such as local, flat, vlan, vxlan, or gre'
PATCH /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_external
- Description changed from '' to 'Defines whether this network is external (public) or internal (private)'
- Modified property: rbac_policies
- Items changed
- Properties changed
- Modified property: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access'
- Modified property: subnets
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this network belongs to'
- Modified property: type
- Description changed from '' to 'Network type, such as local, flat, vlan, vxlan, or gre'
PUT /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_external
- Description changed from '' to 'Defines whether this network is external (public) or internal (private)'
- Modified property: rbac_policies
- Items changed
- Properties changed
- Modified property: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access'
- Modified property: subnets
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this network belongs to'
- Modified property: type
- Description changed from '' to 'Network type, such as local, flat, vlan, vxlan, or gre'
POST /api/openstack-networks/{uuid}/create_subnet/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: disable_gateway
- Description changed from '' to 'If True, no gateway IP address will be allocated'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: disable_gateway
- Description changed from '' to 'If True, no gateway IP address will be allocated'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: network
- Description changed from '' to 'Network to which this subnet belongs'
POST /api/openstack-networks/{uuid}/rbac_policy_create/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access'
GET /api/openstack-ports/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: admin_state_up
- Description changed from '' to 'Administrative state of the port. If down, port does not forward packets'
- Modified property: backend_id
- Description changed from '' to 'Port ID in OpenStack'
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: network
- Description changed from '' to 'Network to which this port belongs'
- Modified property: port_security_enabled
- Description changed from '' to 'If True, security groups and rules will be applied to this port'
- Modified property: status
- Description changed from '' to 'Port status in OpenStack (e.g. ACTIVE, DOWN)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this port belongs to'
POST /api/openstack-ports/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: network
- Description changed from '' to 'Network to which this port belongs'
- Modified property: port_security_enabled
- Description changed from '' to 'If True, security groups and rules will be applied to this port'
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: admin_state_up
- Description changed from '' to 'Administrative state of the port. If down, port does not forward packets'
- Modified property: backend_id
- Description changed from '' to 'Port ID in OpenStack'
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: network
- Description changed from '' to 'Network to which this port belongs'
- Modified property: port_security_enabled
- Description changed from '' to 'If True, security groups and rules will be applied to this port'
- Modified property: status
- Description changed from '' to 'Port status in OpenStack (e.g. ACTIVE, DOWN)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this port belongs to'
GET /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: admin_state_up
- Description changed from '' to 'Administrative state of the port. If down, port does not forward packets'
- Modified property: backend_id
- Description changed from '' to 'Port ID in OpenStack'
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: network
- Description changed from '' to 'Network to which this port belongs'
- Modified property: port_security_enabled
- Description changed from '' to 'If True, security groups and rules will be applied to this port'
- Modified property: status
- Description changed from '' to 'Port status in OpenStack (e.g. ACTIVE, DOWN)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this port belongs to'
PATCH /api/openstack-ports/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: admin_state_up
- Description changed from '' to 'Administrative state of the port. If down, port does not forward packets'
- Modified property: backend_id
- Description changed from '' to 'Port ID in OpenStack'
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: network
- Description changed from '' to 'Network to which this port belongs'
- Modified property: port_security_enabled
- Description changed from '' to 'If True, security groups and rules will be applied to this port'
- Modified property: status
- Description changed from '' to 'Port status in OpenStack (e.g. ACTIVE, DOWN)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this port belongs to'
PUT /api/openstack-ports/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: network
- Description changed from '' to 'Network to which this port belongs'
- Modified property: port_security_enabled
- Description changed from '' to 'If True, security groups and rules will be applied to this port'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: admin_state_up
- Description changed from '' to 'Administrative state of the port. If down, port does not forward packets'
- Modified property: backend_id
- Description changed from '' to 'Port ID in OpenStack'
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: network
- Description changed from '' to 'Network to which this port belongs'
- Modified property: port_security_enabled
- Description changed from '' to 'If True, security groups and rules will be applied to this port'
- Modified property: status
- Description changed from '' to 'Port status in OpenStack (e.g. ACTIVE, DOWN)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this port belongs to'
POST /api/openstack-ports/{uuid}/update_port_ip/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'The IP address to assign within the subnet'
- Modified property: subnet
- Description changed from '' to 'The subnet where the new IP address will be allocated'
POST /api/openstack-ports/{uuid}/update_security_groups/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Description changed from '' to 'List of security groups to be assigned to the instance.'
GET /api/openstack-routers/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Router ID in OpenStack'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: ports
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this router belongs to'
POST /api/openstack-routers/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this router belongs to'
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this router belongs to'
GET /api/openstack-routers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Router ID in OpenStack'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: ports
- Items changed
- Properties changed
- Modified property: device_id
- Description changed from '' to 'ID of device (instance, router etc) to which this port is connected'
- Modified property: device_owner
- Description changed from '' to 'Entity that uses this port (e.g. network:router_interface)'
- Modified property: fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: mac_address
- Description changed from '' to 'MAC address of the port'
- Modified property: security_groups
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Modified property: subnet
- Description changed from '' to 'Subnet to which this port belongs'
- Modified property: subnet_cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this router belongs to'
POST /api/openstack-routers/{uuid}/add_router_interface/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: port
- Description changed from '' to 'The port to connect to the router. Either subnet or port must be specified, but not both.'
- Modified property: subnet
- Description changed from '' to 'The subnet to connect to the router. Either subnet or port must be specified, but not both.'
POST /api/openstack-routers/{uuid}/remove_router_interface/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: port
- Description changed from '' to 'The port to connect to the router. Either subnet or port must be specified, but not both.'
- Modified property: subnet
- Description changed from '' to 'The subnet to connect to the router. Either subnet or port must be specified, but not both.'
GET /api/openstack-security-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
GET /api/openstack-security-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
POST /api/openstack-security-groups/{uuid}/set_rules/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
GET /api/openstack-server-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: instances
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
POST /api/openstack-server-groups/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instances
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
GET /api/openstack-server-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instances
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
PATCH /api/openstack-server-groups/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instances
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
PUT /api/openstack-server-groups/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instances
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
GET /api/openstack-snapshots/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Snapshot ID in the OpenStack backend'
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: volume
- Description changed from '' to 'Volume that is being restored from the snapshot'
- Modified property: source_volume
- Description changed from '' to 'Volume from which this snapshot was created'
GET /api/openstack-snapshots/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Snapshot ID in the OpenStack backend'
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: volume
- Description changed from '' to 'Volume that is being restored from the snapshot'
- Modified property: source_volume
- Description changed from '' to 'Volume from which this snapshot was created'
PATCH /api/openstack-snapshots/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Snapshot ID in the OpenStack backend'
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: volume
- Description changed from '' to 'Volume that is being restored from the snapshot'
- Modified property: source_volume
- Description changed from '' to 'Volume from which this snapshot was created'
PUT /api/openstack-snapshots/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Snapshot ID in the OpenStack backend'
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: volume
- Description changed from '' to 'Volume that is being restored from the snapshot'
- Modified property: source_volume
- Description changed from '' to 'Volume from which this snapshot was created'
GET /api/openstack-snapshots/{uuid}/restorations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: volume
- Description changed from '' to 'Volume that is being restored from the snapshot'
POST /api/openstack-snapshots/{uuid}/restore/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this volume is located'
- Modified property: backend_id
- Description changed from '' to 'Volume ID in the OpenStack backend'
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image
- Description changed from '' to 'Image that this volume was created from, if any'
- Modified property: image_metadata
- Description changed from '' to 'Metadata of the image this volume was created from'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: instance
- Description changed from '' to 'Instance that this volume is attached to, if any'
- Modified property: source_snapshot
- Description changed from '' to 'Snapshot that this volume was created from, if any'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
GET /api/openstack-subnets/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: disable_gateway
- Description changed from '' to 'If True, no gateway IP address will be allocated'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: network
- Description changed from '' to 'Network to which this subnet belongs'
GET /api/openstack-subnets/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: disable_gateway
- Description changed from '' to 'If True, no gateway IP address will be allocated'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: network
- Description changed from '' to 'Network to which this subnet belongs'
PATCH /api/openstack-subnets/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: disable_gateway
- Description changed from '' to 'If True, no gateway IP address will be allocated'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: disable_gateway
- Description changed from '' to 'If True, no gateway IP address will be allocated'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: network
- Description changed from '' to 'Network to which this subnet belongs'
PUT /api/openstack-subnets/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: disable_gateway
- Description changed from '' to 'If True, no gateway IP address will be allocated'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: disable_gateway
- Description changed from '' to 'If True, no gateway IP address will be allocated'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: network
- Description changed from '' to 'Network to which this subnet belongs'
GET /api/openstack-tenants/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'ID of tenant in the OpenStack backend'
- Modified property: external_network_id
- Description changed from '' to 'ID of external network connected to OpenStack tenant'
- Modified property: internal_network_id
- Description changed from '' to 'ID of internal network in OpenStack tenant'
POST /api/openstack-tenants/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'ID of tenant in the OpenStack backend'
- Modified property: external_network_id
- Description changed from '' to 'ID of external network connected to OpenStack tenant'
- Modified property: internal_network_id
- Description changed from '' to 'ID of internal network in OpenStack tenant'
GET /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'ID of tenant in the OpenStack backend'
- Modified property: external_network_id
- Description changed from '' to 'ID of external network connected to OpenStack tenant'
- Modified property: internal_network_id
- Description changed from '' to 'ID of internal network in OpenStack tenant'
PATCH /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'ID of tenant in the OpenStack backend'
- Modified property: external_network_id
- Description changed from '' to 'ID of external network connected to OpenStack tenant'
- Modified property: internal_network_id
- Description changed from '' to 'ID of internal network in OpenStack tenant'
PUT /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'ID of tenant in the OpenStack backend'
- Modified property: external_network_id
- Description changed from '' to 'ID of external network connected to OpenStack tenant'
- Modified property: internal_network_id
- Description changed from '' to 'ID of internal network in OpenStack tenant'
GET /api/openstack-tenants/{uuid}/backend_instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: hypervisor_hostname
- Description changed from '' to 'Name of the hypervisor hosting this instance'
GET /api/openstack-tenants/{uuid}/backend_volumes/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Volume ID in the OpenStack backend'
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: metadata
- Description changed from '' to 'Arbitrary key-value pairs associated with the volume'
POST /api/openstack-tenants/{uuid}/create_floating_ip/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: address
- Description changed from '' to 'The public IPv4 address of the floating IP'
- Modified property: backend_network_id
- Description changed from '' to 'ID of network in OpenStack where this floating IP is allocated'
- Modified property: external_address
- Description changed from 'An optional address that maps to floating IP's address' to 'Optional address that maps to floating IP's address in external networks'
- Modified property: port_fixed_ips
- Items changed
- Properties changed
- Modified property: ip_address
- Description changed from '' to 'IP address to assign to the port'
- Modified property: subnet_id
- Description changed from '' to 'ID of the subnet in which to assign the IP address'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this floating IP belongs to'
POST /api/openstack-tenants/{uuid}/create_network/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: is_external
- Description changed from '' to 'Defines whether this network is external (public) or internal (private)'
- Modified property: rbac_policies
- Items changed
- Properties changed
- Modified property: policy_type
- Description changed from '' to 'Type of access granted - either shared access or external network access'
- Modified property: subnets
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'IPv4 network address in CIDR format (e.g. 192.168.0.0/24)'
- Modified property: enable_dhcp
- Description changed from '' to 'If True, DHCP service will be enabled on this subnet'
- Modified property: gateway_ip
- Description changed from '' to 'IP address of the gateway for this subnet'
- Modified property: ip_version
- Description changed from '' to 'IP protocol version (4 or 6)'
- Modified property: tenant
- Description changed from '' to 'OpenStack tenant this network belongs to'
- Modified property: type
- Description changed from '' to 'Network type, such as local, flat, vlan, vxlan, or gre'
POST /api/openstack-tenants/{uuid}/create_security_group/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: remote_group
- Description changed from '' to 'Remote security group that this rule references, if any'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
POST /api/openstack-tenants/{uuid}/create_server_group/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instances
- Items changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Instance ID in the OpenStack backend'
- Modified property: policy
- Description changed from '' to 'Server group policy determining the rules for scheduling servers in this group'
POST /api/openstack-tenants/{uuid}/pull_security_groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'ID of tenant in the OpenStack backend'
- Modified property: external_network_id
- Description changed from '' to 'ID of external network connected to OpenStack tenant'
- Modified property: internal_network_id
- Description changed from '' to 'ID of internal network in OpenStack tenant'
POST /api/openstack-tenants/{uuid}/pull_server_groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'ID of tenant in the OpenStack backend'
- Modified property: external_network_id
- Description changed from '' to 'ID of external network connected to OpenStack tenant'
- Modified property: internal_network_id
- Description changed from '' to 'ID of internal network in OpenStack tenant'
GET /api/openstack-volumes/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this volume is located'
- Modified property: backend_id
- Description changed from '' to 'Volume ID in the OpenStack backend'
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image
- Description changed from '' to 'Image that this volume was created from, if any'
- Modified property: image_metadata
- Description changed from '' to 'Metadata of the image this volume was created from'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: instance
- Description changed from '' to 'Instance that this volume is attached to, if any'
- Modified property: source_snapshot
- Description changed from '' to 'Snapshot that this volume was created from, if any'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
GET /api/openstack-volumes/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this volume is located'
- Modified property: backend_id
- Description changed from '' to 'Volume ID in the OpenStack backend'
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image
- Description changed from '' to 'Image that this volume was created from, if any'
- Modified property: image_metadata
- Description changed from '' to 'Metadata of the image this volume was created from'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: instance
- Description changed from '' to 'Instance that this volume is attached to, if any'
- Modified property: source_snapshot
- Description changed from '' to 'Snapshot that this volume was created from, if any'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
PATCH /api/openstack-volumes/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this volume is located'
- Modified property: backend_id
- Description changed from '' to 'Volume ID in the OpenStack backend'
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image
- Description changed from '' to 'Image that this volume was created from, if any'
- Modified property: image_metadata
- Description changed from '' to 'Metadata of the image this volume was created from'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: instance
- Description changed from '' to 'Instance that this volume is attached to, if any'
- Modified property: source_snapshot
- Description changed from '' to 'Snapshot that this volume was created from, if any'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
PUT /api/openstack-volumes/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: availability_zone
- Description changed from '' to 'Availability zone where this volume is located'
- Modified property: backend_id
- Description changed from '' to 'Volume ID in the OpenStack backend'
- Modified property: bootable
- Description changed from '' to 'Indicates if this volume can be used to boot an instance'
- Modified property: image
- Description changed from '' to 'Image that this volume was created from, if any'
- Modified property: image_metadata
- Description changed from '' to 'Metadata of the image this volume was created from'
- Modified property: image_name
- Description changed from '' to 'Name of the image this volume was created from'
- Modified property: instance
- Description changed from '' to 'Instance that this volume is attached to, if any'
- Modified property: source_snapshot
- Description changed from '' to 'Snapshot that this volume was created from, if any'
- Modified property: type
- Description changed from '' to 'Type of the volume (e.g. SSD, HDD)'
POST /api/openstack-volumes/{uuid}/attach/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance
- Description changed from '' to 'Instance that this volume is attached to, if any'
POST /api/openstack-volumes/{uuid}/snapshot/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: backend_id
- Description changed from '' to 'Snapshot ID in the OpenStack backend'
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: volume
- Description changed from '' to 'Volume that is being restored from the snapshot'
- Modified property: source_volume
- Description changed from '' to 'Volume from which this snapshot was created'
GET /api/projects/{uuid}/other_users/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- Deleted required property: full_name
- Deleted required property: url
- Deleted required property: username
- Deleted required property: uuid
GET /api/rancher-cluster-security-groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
GET /api/rancher-cluster-security-groups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
PATCH /api/rancher-cluster-security-groups/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
PUT /api/rancher-cluster-security-groups/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: rules
- Items changed
- Properties changed
- Modified property: cidr
- Description changed from '' to 'CIDR notation for the source/destination network address range'
- Modified property: direction
- Property 'AllOf' changed
- Schemas added: #/components/schemas/DirectionEnum
- Type changed from 'string' to ''
- Description changed from '' to 'Traffic direction - either 'ingress' (incoming) or 'egress' (outgoing)'
- Deleted enum values: [ingress egress]
- Modified property: ethertype
- Property 'AllOf' changed
- Schemas added: #/components/schemas/EthertypeEnum
- Type changed from 'string' to ''
- Description changed from '' to 'IP protocol version - either 'IPv4' or 'IPv6''
- Deleted enum values: [IPv4 IPv6]
- Modified property: from_port
- Description changed from '' to 'Starting port number in the range (1-65535)'
- Modified property: protocol
- Description changed from '' to 'The network protocol (TCP, UDP, ICMP, or empty for any protocol)'
- Modified property: to_port
- Description changed from '' to 'Ending port number in the range (1-65535)'
GET /api/user-group-invitations/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: scope_image
- Properties changed
- New property: is_public
- New property: scope_image
POST /api/user-group-invitations/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: is_public
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: scope_image
- Properties changed
- New property: is_public
- New property: scope_image
GET /api/user-group-invitations/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: scope_image
- Properties changed
- New property: is_public
- New property: scope_image
POST /api/user-group-invitations/{uuid}/submit_request/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: scope_image
- Properties changed
- New property: is_public
- New property: scope_image
GET /api/user-permission-requests/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: review_comment
- Description changed from '' to 'Optional comment provided during review'
- Modified property: reviewed_at
- Description changed from '' to 'Timestamp when the review was completed'
GET /api/user-permission-requests/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: review_comment
- Description changed from '' to 'Optional comment provided during review'
- Modified property: reviewed_at
- Description changed from '' to 'Timestamp when the review was completed'
OpenAPI schema diff - 7.7.7
For version 7.7.7
New Endpoints: 26
GET /api/customers/{customer_uuid}/project-metadata-compliance-details/
GET /api/customers/{customer_uuid}/project-metadata-compliance-overview/
GET /api/customers/{customer_uuid}/project-metadata-compliance-projects/
GET /api/customers/{customer_uuid}/project-metadata-question-answers/
GET /api/managed-rancher-cluster-resources/
HEAD /api/managed-rancher-cluster-resources/
GET /api/managed-rancher-cluster-resources/{uuid}/
POST /api/managed-rancher-cluster-resources/{uuid}/add_node/
GET /api/marketplace-offering-terms-of-service/
HEAD /api/marketplace-offering-terms-of-service/
POST /api/marketplace-offering-terms-of-service/
DELETE /api/marketplace-offering-terms-of-service/{uuid}/
GET /api/marketplace-offering-terms-of-service/{uuid}/
PATCH /api/marketplace-offering-terms-of-service/{uuid}/
PUT /api/marketplace-offering-terms-of-service/{uuid}/
GET /api/marketplace-user-offering-consents/
HEAD /api/marketplace-user-offering-consents/
POST /api/marketplace-user-offering-consents/
DELETE /api/marketplace-user-offering-consents/{uuid}/
GET /api/marketplace-user-offering-consents/{uuid}/
PATCH /api/marketplace-user-offering-consents/{uuid}/
PUT /api/marketplace-user-offering-consents/{uuid}/
POST /api/marketplace-user-offering-consents/{uuid}/revoke/
GET /api/remote-waldur-api/remote_resource_order_status/{resource_uuid}/
GET /api/remote-waldur-api/remote_resource_status/{resource_uuid}/
GET /api/remote-waldur-api/remote_resource_team_status/{resource_uuid}/
Deleted Endpoints: None
Modified Endpoints: 116
POST /api/backend-resources/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/booking-offerings/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Modified property: slug
- ReadOnly changed from true to false
GET /api/booking-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Modified property: slug
- ReadOnly changed from true to false
GET /api/booking-resources/
- New query param: offering_slug
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_requires_reconsent]
- Deleted enum values: [offering_terms_of_service]
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: slug
- ReadOnly changed from true to false
HEAD /api/booking-resources/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
GET /api/booking-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_requires_reconsent]
- Deleted enum values: [offering_terms_of_service]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: slug
- ReadOnly changed from true to false
GET /api/checklists-admin-questions/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: dependency_logic_operator
POST /api/checklists-admin-questions/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: dependency_logic_operator
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: dependency_logic_operator
GET /api/checklists-admin-questions/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: dependency_logic_operator
PATCH /api/checklists-admin-questions/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: dependency_logic_operator
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: dependency_logic_operator
PUT /api/checklists-admin-questions/{uuid}/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: dependency_logic_operator
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: dependency_logic_operator
GET /api/checklists-admin/{uuid}/questions/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: dependency_logic_operator
GET /api/customers/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [organization_groups project_metadata_checklist projects users_count]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: organization_groups
- New property: project_metadata_checklist
- New property: projects
- New property: users_count
- Modified property: slug
- ReadOnly changed from true to false
POST /api/customers/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: organization_groups
- New property: project_metadata_checklist
- New property: projects
- New property: users_count
- Modified property: slug
- ReadOnly changed from true to false
GET /api/customers/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [organization_groups project_metadata_checklist projects users_count]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: organization_groups
- New property: project_metadata_checklist
- New property: projects
- New property: users_count
- Modified property: slug
- ReadOnly changed from true to false
PATCH /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: organization_groups
- New property: project_metadata_checklist
- New property: projects
- New property: users_count
- Modified property: slug
- ReadOnly changed from true to false
PUT /api/customers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: organization_groups
- New property: project_metadata_checklist
- New property: projects
- New property: users_count
- Modified property: slug
- ReadOnly changed from true to false
GET /api/google-auth/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [enable_notifications]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: enable_notifications
GET /api/google-auth/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [enable_notifications]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: enable_notifications
GET /api/google-auth/{uuid}/authorize/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [enable_notifications]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: enable_notifications
GET /api/maintenance-announcements/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Required changed
- New required property: backend_id
- Properties changed
- New property: backend_id
POST /api/maintenance-announcements/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: backend_id
- Properties changed
- New property: backend_id
GET /api/maintenance-announcements/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: backend_id
- Properties changed
- New property: backend_id
PATCH /api/maintenance-announcements/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: backend_id
- Properties changed
- New property: backend_id
PUT /api/maintenance-announcements/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- New required property: backend_id
- Properties changed
- New property: backend_id
GET /api/marketplace-integration-statuses/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
HEAD /api/marketplace-integration-statuses/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
GET /api/marketplace-offering-files/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
HEAD /api/marketplace-offering-files/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
GET /api/marketplace-offering-user-roles/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
HEAD /api/marketplace-offering-user-roles/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
GET /api/marketplace-offering-users/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
HEAD /api/marketplace-offering-users/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
GET /api/marketplace-orders/
- New query param: offering_slug
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [error_traceback]
- Deleted enum values: [offering_terms_of_service]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: offering_terms_of_service
HEAD /api/marketplace-orders/
- New query param: offering_slug
POST /api/marketplace-orders/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: attributes
- Property 'OneOf' changed
- Schemas added: #/components/schemas/GenericOrderAttributes
- Modified schema: #/components/schemas/AzureVirtualMachineCreateOrderAttributes
- Description changed from 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.' to 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.
It is disabled for nested serializers (where parent is another serializer) but remains active for list views (where parent is a ListSerializer).' - Modified schema: #/components/schemas/AzureSQLServerCreateOrderAttributes - Description changed from 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.' to 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.
It is disabled for nested serializers (where parent is another serializer) but remains active for list views (where parent is a ListSerializer).' - Modified schema: #/components/schemas/OpenStackTenantCreateOrderAttributes - Description changed from 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.' to 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.
It is disabled for nested serializers (where parent is another serializer) but remains active for list views (where parent is a ListSerializer).' - Properties changed - New property: user_password - New property: user_username - Modified schema: #/components/schemas/OpenStackInstanceCreateOrderAttributes - Description changed from 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.' to 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.
It is disabled for nested serializers (where parent is another serializer) but remains active for list views (where parent is a ListSerializer).' - Properties changed - Modified property: security_groups - Description changed from 'List of security groups to apply to the instance' to 'Security groups to attach to the instance' - Items changed - Properties changed - Modified property: url - Format changed from '' to 'uri' - Modified schema: #/components/schemas/OpenStackVolumeCreateOrderAttributes - Description changed from 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.' to 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.
It is disabled for nested serializers (where parent is another serializer) but remains active for list views (where parent is a ListSerializer).' - Modified schema: #/components/schemas/MarketplaceRancherCreateOrderAttributes - Description changed from 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.' to 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.
It is disabled for nested serializers (where parent is another serializer) but remains active for list views (where parent is a ListSerializer).' - Modified schema: #/components/schemas/SlurmInvoicesSlurmPackageCreateOrderAttributes - Description changed from 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.' to 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.
It is disabled for nested serializers (where parent is another serializer) but remains active for list views (where parent is a ListSerializer).' - Modified schema: #/components/schemas/VMwareVirtualMachineCreateOrderAttributes - Description changed from 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.' to 'This mixin allows to specify list of fields to be rendered by serializer. It expects that request is available in serializer's context.
It is disabled for nested serializers (where parent is another serializer) but remains active for list views (where parent is a ListSerializer).' - Description changed from 'Attributes structure depends on the offering type specified in the parent object' to 'Attributes structure depends on the offering type specified in the parent object. Can also be a generic object for offerings without a specific attributes schema.'
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Required changed
- Deleted required property: offering_terms_of_service
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/marketplace-orders/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [error_traceback]
- Deleted enum values: [offering_terms_of_service]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/marketplace-orders/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
GET /api/marketplace-plans/
- New query param: offering_slug
HEAD /api/marketplace-plans/
- New query param: offering_slug
GET /api/marketplace-plans/usage_stats/
- New query param: offering_slug
HEAD /api/marketplace-plans/usage_stats/
- New query param: offering_slug
GET /api/marketplace-provider-offerings/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Modified property: slug
- ReadOnly changed from true to false
POST /api/marketplace-provider-offerings/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
GET /api/marketplace-provider-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Modified property: slug
- ReadOnly changed from true to false
POST /api/marketplace-provider-offerings/{uuid}/import_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Modified property: slug
- ReadOnly changed from true to false
GET /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Modified property: slug
- ReadOnly changed from true to false
POST /api/marketplace-provider-offerings/{uuid}/move_offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
GET /api/marketplace-provider-offerings/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/marketplace-provider-offerings/{uuid}/orders/{order_uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: offering_terms_of_service
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
GET /api/marketplace-provider-offerings/{uuid}/stats/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Modified property: slug
- ReadOnly changed from true to false
POST /api/marketplace-provider-offerings/{uuid}/update_image/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Modified property: slug
- ReadOnly changed from true to false
POST /api/marketplace-provider-offerings/{uuid}/update_overview/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
- Modified property: slug
- ReadOnly changed from true to false
GET /api/marketplace-provider-resources/
- New query param: offering_slug
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_requires_reconsent]
- Deleted enum values: [offering_terms_of_service]
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
HEAD /api/marketplace-provider-resources/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
GET /api/marketplace-provider-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_requires_reconsent]
- Deleted enum values: [offering_terms_of_service]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/marketplace-provider-resources/{uuid}/details/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_requires_reconsent]
- Deleted enum values: [offering_terms_of_service]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
POST /api/marketplace-provider-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/marketplace-provider-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
POST /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/marketplace-public-offerings/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
GET /api/marketplace-public-offerings/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- Deleted enum values: [terms_of_service terms_of_service_link]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
GET /api/marketplace-resources/
- New query param: offering_slug
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_requires_reconsent]
- Deleted enum values: [offering_terms_of_service]
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
HEAD /api/marketplace-resources/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
GET /api/marketplace-resources/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_requires_reconsent]
- Deleted enum values: [offering_terms_of_service]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/marketplace-resources/{uuid}/details/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [user_requires_reconsent]
- Deleted enum values: [offering_terms_of_service]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
POST /api/marketplace-resources/{uuid}/move_resource/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/marketplace-resources/{uuid}/offering/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
GET /api/marketplace-screenshots/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
HEAD /api/marketplace-screenshots/
- New query param: offering_slug
- Modified query param: offering_uuid
- Description changed from '' to 'Multiple values may be separated by commas.'
- Style changed from '' to 'form'
- Explode changed from null to false
- Schema changed
- Type changed from 'string' to 'array'
- Format changed from 'uuid' to ''
- Items changed
- Schema added
POST /api/marketplace-script-dry-run/{uuid}/async_run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
POST /api/marketplace-script-dry-run/{uuid}/run/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: terms_of_service
- Deleted property: terms_of_service_link
GET /api/marketplace-service-providers/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [enable_notifications]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: enable_notifications
POST /api/marketplace-service-providers/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: enable_notifications
GET /api/marketplace-service-providers/{service_provider_uuid}/offerings/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
GET /api/marketplace-service-providers/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [enable_notifications]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: enable_notifications
PATCH /api/marketplace-service-providers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: enable_notifications
PUT /api/marketplace-service-providers/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: enable_notifications
GET /api/openstack-backups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: instance_security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
GET /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
PATCH /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
PUT /api/openstack-backups/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
POST /api/openstack-backups/{uuid}/restore/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Deleted property: security_groups
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
GET /api/openstack-instances/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
GET /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
PATCH /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
PUT /api/openstack-instances/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
POST /api/openstack-instances/{uuid}/backup/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: instance_security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
- Modified property: restorations
- Items changed
- Properties changed
- Modified property: security_groups
- Items changed
- Properties changed
- New property: description
- New property: name
- New property: rules
- New property: state
- Modified property: url
- Format changed from '' to 'uri'
- ReadOnly changed from false to true
GET /api/openstack-networks/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [segmentation_id]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: segmentation_id
GET /api/openstack-networks/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [segmentation_id]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: segmentation_id
PATCH /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: segmentation_id
PUT /api/openstack-networks/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: segmentation_id
POST /api/openstack-security-groups/{uuid}/set_rules/
- Request body changed
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: direction
- Default changed from null to 'ingress'
- Modified property: ethertype
- Default changed from null to 'IPv4'
GET /api/openstack-tenants/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [access_url user_password user_username]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: access_url
- New property: user_password
- New property: user_username
POST /api/openstack-tenants/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: access_url
- New property: user_password
- New property: user_username
GET /api/openstack-tenants/{uuid}/
- Modified query param: field
- Schema changed
- Items changed
- New enum values: [access_url user_password user_username]
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: access_url
- New property: user_password
- New property: user_username
PATCH /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: access_url
- New property: user_password
- New property: user_username
PUT /api/openstack-tenants/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: access_url
- New property: user_password
- New property: user_username
POST /api/openstack-tenants/{uuid}/create_network/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: segmentation_id
POST /api/openstack-tenants/{uuid}/pull_security_groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: access_url
- New property: user_password
- New property: user_username
POST /api/openstack-tenants/{uuid}/pull_server_groups/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- New property: access_url
- New property: user_password
- New property: user_username
GET /api/promotions-campaigns/{uuid}/orders/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/promotions-campaigns/{uuid}/resources/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- New property: user_requires_reconsent
- Deleted property: offering_terms_of_service
- Modified property: creation_order
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
- Modified property: order_in_progress
- Property 'AllOf' changed
- Modified schema: #/components/schemas/OrderDetails
- Properties changed
- Deleted property: offering_terms_of_service
GET /api/proposal-protected-calls/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
POST /api/proposal-protected-calls/
- Responses changed
- Modified response: 201
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
GET /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
PATCH /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
PUT /api/proposal-protected-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
POST /api/proposal-protected-calls/{uuid}/activate/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
POST /api/proposal-protected-calls/{uuid}/archive/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
POST /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
GET /api/proposal-public-calls/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Items changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
GET /api/proposal-public-calls/{uuid}/
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: slug
- ReadOnly changed from true to false
Ended: API Changes
Ended: APIs
SDK Examples ↵
Allocation Lifecycle Management by Service Provider
This page describes operations to be performed by service provider.
Prerequisites
Please, read initial setup for Waldur SDK.
Getting a list of users
list_users method is used to fetch all users in a Waldur instance.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | |
Getting a list of SSH keys
keys_list method is used to fetch all SSH keys in Waldur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Getting a list of resource allocations
marketplace_resources_list method is used to fetch resources related to offerings, which belong to user's service provider.
Possible filter options for allocations (each one is optional):
provider_uuid- UUID of a service provider organization;state- current state of a resource allocation; for valid values please use the associated enum values from MarketplaceResourcesListStateItem;offering_uuid- UUID of a related resource;fields- list of fields to return (can be passed as as strings or imported fromMarketplaceResourcesListFieldItemenum, which includes fields likename,offering,state,limits,plan,project,url, and many others). Both examples are provided:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Approving/rejecting allocation order by service provider
The service provider can either approve or reject order using
marketplace_orders_approve_by_provider and marketplace_orders_reject_by_provider correspondingly.
Both of these methods expect as its only argument UUID of an order for the allocation.
For example, a consumer requested an allocation using Order with CREATE type. After that, an empty allocation with CREATING state has appeared.
A service provider can change the state to ok (created successfully) using marketplace_orders_approve_by_provider or
rejected (creation rejected) using marketplace_orders_reject_by_provider.
In order to get a proper order, SP owner can use marketplace_orders_list method. This action is for order listing and supports filtering by state and allocation.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | |
Cancellation of orders for allocations
A consumer can also cancel created order and subsequently interrupt the requested operation over allocation.
For example, this option is suitable if the customer wants to cancel allocation deletion.
For this, marketplace_orders_cancel method should be used.
It changes the state of the order to canceled.
NB: this transition is possible only if the order's state is equal to pending-consumer or pending-provider and offering type is basic or support.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Updating resource allocation with local reference (setting backend_id field)
Each allocation can have a link to a service provider's internal reference using backend_id field. Only users with service provider owner and manager roles can set this value using marketplace_provider_resources_set_backend_id method of the client. It requires the following arguments:
uuid- UUID of a resource allocation;body- A request parameter of typeResourceBackendIDRequestthat contains thebackend_idfield, which is the unique identifier of the resource in the external system.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
In case if SDK usage is not possible, HTTP request can be sent:
1 2 3 4 5 6 7 8 9 10 11 | |
Providing additional access detail for resource allocation
For additional details related to allocation access, report data is used.
In order to provide this information, owners and managers can use marketplace_resource_submit_report method. It requires the following arguments:
uuid- UUID of a resource allocation;report- A list ofReportSectionRequestinstances that is wrapped in aResourceReportRequestobject. EachReportSectionRequestcontains a header and body content. TheResourceReportRequestserves as a container for these report sections when submitting the report to the API.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
Pagination
The Waldur API Client SDK supports pagination for list endpoints using page and page_size parameters.
Example paginating API results
1 2 3 4 5 6 7 8 | |
Filtering API Response Fields Using Enum Types
The marketplace_service_providers_list endpoint allows you to specify which fields you want to retrieve from the service provider objects. This is done using the field parameter with enum values from MarketplaceServiceProvidersListFieldItem. The field parameter is present for different API endpoints to allow selective retrieval of specific fields from the response objects.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Getting a list of members in a project with active resource allocations
Service provider owners and managers can list project members using a resource allocation with marketplace_resources_team_list method.
It requires the following arguments:
resource_uuid- UUID of a resource allocation.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Reporting usage for a resource allocation
A usage of a resource allocation can be submitted by a corresponding service provider. For this, the following methods are used:
marketplace_public_offerings_retrieve- getting offering with components info. Arguments:-
offering_uuid- UUID of an offering -
marketplace_resources_plan_periods_list- getting current plan periods for resource allocation. Arguments: -
resource_uuid- UUID of a resource -
marketplace_plan_components_list- retrieves the list of components for a specific offering. Arguments: offering_uuid- UUID of the offering to get components for-
client- API client instance -
marketplace_component_usages_set_usage- creates or updates component usage for the current plan. Arguments: body- parameter of typeComponentUsageCreateRequestcontaining:resource_uuid- UUID of the resourceusages- list ofComponentUsageinstances
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | |
Granting user access to resource
An access to a resource can be granted by service provider for a particular user with specification of username.
A result is represented by triplet [user, resource, username].
For this purpose, marketplace_offering_users_create should be invoked. This method requires the following arguments:
marketplace_offering_users_create- creates a new offering user mapping. Arguments:body- parameter of typeOfferingUserRequestcontaining:offering- URL of the target offeringuser- URL of the target userusername- username to be associated with the user in the offering context
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
In case if SDK usage is not possible, HTTP request can be sent:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
Granting user access to corresponding resources in batch manner
A service provider can grant access mentioned in the previous section to all resources used in projects including a target user.
For such access creation or update, marketplace_service_providers_set_offerings_username is used.
The method requires the following arguments:
marketplace_service_providers_set_offerings_username- sets or updates the username for a user across all offerings of a service provider. Arguments:uuid- UUID of the service providerbody- parameter of typeSetOfferingsUsernameRequestcontaining:user_uuid- UUID of the target userusername- new username to be set for the user across all offerings
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Getting service provider for an organization
A user can get service provider details
using marketplace_service_providers_list with corresponding filter.
This method is guaranteed to return a list with at most one service provider record.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
Listing users of service provider's resources
A service provider owner can list users currently using its resources.
For this, marketplace_service_providers_users_list should be used. It accepts service_provider_uuid,
which can be fetched using marketplace_service_providers_list.
marketplace_service_providers_users_list- retrieves a list of users associated with a service provider's resources. Arguments:service_provider_uuid- UUID of the service providerclient- API client instance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
Listing ssh key for users of service provider's resources
A service provider owner can list ssh keys of users currently using its resources.
For this, list_service_provider_ssh_keys should be used. It accepts service_provider_uuid,
which can be fetched using marketplace_service_providers_list.
marketplace_service_providers_keys_list- retrieves a list of SSH keys associated with users of a service provider's resources. Arguments:service_provider_uuid- UUID of the service providerclient- API client instance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Listing projects with service provider's resources
A service provider owner can list all projects, which have its resources.
For this, list_service_provider_projects should be used. It accepts service_provider_uuid,
which can be fetched using marketplace_service_providers_list.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
Listing project permissions in projects using service provider's resources
A service provider owner can also list all active projects permissions in projects, which have its resources.
For this, marketplace_service_providers_project_permissions_list should be used. It accepts service_provider_uuid,
which can be fetched using marketplace_service_providers_list.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | |
Creating Offerings
Service providers can create new offerings using the Waldur SDK. The following example demonstrates how to create a new offering with components and plans.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 | |
Ended: SDK Examples
Existing integrations ↵
VPNaaS custom script - Provisioning VPN as a Service based on Firezone
This python script provisions VPN as a Service based on Firezone in OpenStack in Waldur. It uses Flatcar Linux and a butane binary that the user needs to provide inside a Docker container used for running Waldur custom scripts.
An additional requirement is an OpenID Connect provider for end-user authentication in Firezone. Default VPN port: UDP/51820.
System requirements
- Keycloak with admin access for OpenID Connect client creation
- Butane for converting Flarcar Linux yaml config into json
- OpenStack nova for running the Firezone VM
- OpenStack designate for the VM FQDN generation. Firezone will use that FQDN for HTTPS certificate generation.
Firezone VM needs Internet connection for Let's Encrypt certificate generation and Github access for script download.
Setup guide
- Prepare waldur custom script runner container to have Butane and required Python packages
- Paste the create.py into the creation script and terminate.py into the termination script
- Populate environment variables
- Add user input field with internal name "tenant" and type - "Select OpenStack tenant", make it a required field
Environment Variables
The following environment variables need to be provided in the Waldur custom script:
WALDUR_API_URL- API URL of Waldur that holds OpenStackWALDUR_API_TOKEN- Waldur API tokenKEYCLOAK_URL- Keycloak address for creating OpenID connect clientsKEYCLOAK_USERNAME- Keycloak admin usernameKEYCLOAK_PASSWORD- Keycloak admin passwordKEYCLOAK_REALM- Keycloak realmCREATOR_EMAIL- Email of the user, that created the VPN instanceIMAGE- OpenStack imageFLAVOR- OpenStack flavorSYSTEM_VOLUME_SIZE- Size of the system volume for OpenStack VMRUN_BUTANE_IN_DOCKER- When set to True - run butane in docker container instead of just binary
Waldur Guacamole integration
Guacamole is a browser based remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. Waldur — Guacamole integration is based on Waldur's custom scripts functionality.
This integration provides full virtual desktop lifecycle, including:
- Creation of a virtual desktop in remote Waldur (i.e. OpenStack KVM machine)
- Adding records of a freshly created virtual desktop to Guacamole MySQL database
- Termination of the virtual desktop and MySQL records removal upon desktop deletion
Quick Start Guide
- Make sure your Waldur is able to run custom scripts
- Modify Guacamole MySQL database to store backend ID (Backend Waldur resource ID):
1 | |
- Create a Service Offerring in Waldur with "Custom Script" type
- Configure environment variables for the service:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
- Copy
custom-scripts/create.pyandcustom-scripts/terminate.pyas the creation and termination scripts for the service
Ended: Existing integrations
Ended: Integrator guide
User guide ↵
User guide
This section contains instructions to typical operations done with Waldur. The section can be used as a basis for deployment-specific documentation.
Practical guides for the customer organization
- Accounting and reporting
- Cost and usage policies
- Credit management
- Organization management
- Project management
- Project membership management
- Resource management
Practical guides for the service provider organization
Practical guides for the call managing organization
Practical guides for the end users
Practical guides for the staff and support users (deployment administrators)
- Announcements
- Branding configuration
- Broadcast messages
- Catalogue mode
- Change user passwords
- Creation of organizations
- Credit management configuration
- Impersonation
- Projects removal by admin
- User role management
- Remote sync of offerings
- Organization management
- Reporting
- Service desk configuration
- Service desk interactions
Call managing organization ↵
Call Management
Overview
Call management in Waldur enables organizations to manage resource allocation through a structured application proposals and review process. This feature is particularly useful for research institutions, funding agencies, and organizations that need to allocate computational or infrastructure resources through a competitive process.
Introduction
Call management in Waldur is built around structured components: calls, rounds, proposals, and reviews. A call is a defined period during which resources can be allocated. Each call is divided into rounds, where stakeholders can submit and review proposals for resource allocation. Proposals are evaluated through a structured review process. Successful proposals lead to approved allocations, seamlessly integrating into the rest of the Waldur ecosystem. When a proposal is approved, Waldur automatically creates a project under the proposing organization that initiated the call. Allocations are granted to this project, and team members who submitted the proposal are added to the project, ensuring the resources are immediately ready for use.
Prerequisites
- Organization must be registered as a Call Managing Organization
- Marketplace offerings must be available to be requested in calls
Stakeholder Roles
Organization Owner
- Assign call managers
- Grant final resource allocations, if defined in round configuration
- View statistics across all calls in the organization
- Archive calls when they are no longer active
Call Manager
- Create and configure calls
- Manage call rounds
- Set review strategies
- Assign reviewers
- Make decisions (if configured as deciding entity)
- Add documentation and descriptions
- Monitor call progress
- Close rounds early if needed
- Manage requested offerings from service providers
Call Member (Applicant)
- Submit proposals to active rounds
- Upload required documentation
- Select offerings and allocations
- Add team members to proposals
- Track proposal status
- Provide additional information during revision process
- View review feedback when available
Reviewer
- Evaluate assigned proposals
- Provide scores and feedback
- Complete reviews within specified duration
- Accept or reject review assignments
- Provide both public comments (visible to applicants) and private comments (visible only to call managers)
Service Provider
- Accept or reject requests to include their offerings in calls
- View requested resources related to their offerings
- Configure parameters for offerings available in calls
Call Structure and Workflow
1. Call Setup
- Organization owner assigns call managers
- Call manager or Organization owner creates a call
- Call manager configures call rounds
- Call manager requests offerings from service providers
- Service providers accept or reject offering requests
- Call manager activates the call when configuration is complete
2. Round Configuration
Call manager must configure:
- Start and end dates
- Review strategy options:
- After round closure
- After proposal submission
- Review parameters:
- Review duration (in days)
- Minimum number of reviewers
- Minimal average scoring threshold for automatic approval (if applicable)
- Decision making:
- Deciding entity (call manager or automatic)
- Allocation timing (on decision or fixed date)
- Allocation date (if fixed date is selected)
- Round description and documentation
- Reviewers and managers assignment
- Default project role for proposal team members
3. Proposal Submission
Call members should:
- Submit proposals to active rounds
- Upload required documents
- Select offerings and allocations
- Add team members (optional)
- Provide required details:
- Project name
- Project summary
- Description
- OECD FOS 2007 code (Fields of Science classification)
- Civilian purpose declaration
- Confidentiality requirements
- Duration in days
4. Review Process
- Reviewers are assigned to rounds
- Reviewers are assigned to specific proposals
- Reviews are conducted according to strategy
- Feedback and scores are provided on multiple aspects:
- Project title
- Project summary
- Project description
- Project duration
- Supporting documentation
- Resource requests
- Team composition
- Summary score and comments are provided
- Reviews are submitted for consideration
5. Decision and Allocation
- Decision maker (as configured) evaluates reviews
- Final decisions are made (allocation or rejection)
- For allocated proposals:
- A project is automatically created
- Requested resources are provisioned in the marketplace
- Team members are assigned the configured project role
- Resource limits are applied as specified in the proposal
6. Tracking and Reporting
- Call managers can monitor statistics on:
- Open calls
- Active rounds
- Accepted proposals
- Pending proposals
- Pending reviews
- Rounds closing soon
- Pending offering requests
- Organization owners can track resource allocation across all calls
States and Transitions
Call States
- Draft: Initial state, call is being configured
- Active: Call is open for submissions
- Archived: Call is completed and no longer active
Round Statuses
- Scheduled: Round start date is in the future
- Open: Round is currently accepting submissions
- Ended: Round cutoff date has passed
Proposal States
- Draft: Initial creation, editable by applicant
- Submitted: Sent for review, awaiting reviewer assignment
- In Review: Assigned to reviewers, under evaluation
- In Revision: Sent back to applicant for changes
- Accepted: Approved for resource allocation
- Rejected: Declined for resource allocation
- Canceled: Withdrawn or automatically canceled
Review States
- Created: Review has been assigned
- In Review: Reviewer has accepted and is working on evaluation
- Submitted: Review is complete
- Rejected: Reviewer has declined the assignment
Requested Offering States
- Requested: Initial state, awaiting service provider decision
- Accepted: Service provider has approved use in call
- Canceled: Service provider has declined use in call
API Endpoints
The system provides RESTful API endpoints for:
- Managing Call Organizations
- Creating and configuring Calls
- Managing Rounds
- Submitting and updating Proposals
- Assigning and completing Reviews
- Requesting and approving Offerings
- Allocating resources
Best Practices
- Set clear evaluation criteria and communicate them to applicants
- Provide comprehensive round documentation including resource availability
- Allow adequate time for review process (recommended: 2+ weeks for reviews)
- Configure appropriate minimum number of reviewers (recommended: 2-3)
- Maintain consistent communication with applicants throughout the process
- Close rounds promptly when cutoff dates are reached
- Monitor reviewer workload to ensure balanced distribution
- Configure automatic allocation only when clear scoring criteria are established
- Provide templates for proposal documentation where applicable
- Schedule multiple rounds in advance for recurring allocation cycles
Troubleshooting
Round Configuration
-
Issue: Round dates overlap with existing rounds Solution: Adjust dates to ensure no overlap within the same call
-
Issue: Unable to create a round Solution: Ensure call is in Draft or Active state
Proposal Submission
-
Issue: Unable to submit proposal Solution: Verify round is in Open status and required fields are completed
-
Issue: Resource requests unavailable Solution: Check that service providers have accepted offering requests
Review Assignment
-
Issue: Not enough reviewers available Solution: Assign additional reviewers to the call or adjust minimum number requirement
-
Issue: Reviews not being created Solution: Verify review strategy configuration and check reviewer availability
Allocation Process
-
Issue: Resources not provisioned after approval Solution: Check marketplace availability and quotas
-
Issue: Team members not added to project Solution: Verify default project role configuration
-
Issue: Unable to allocate proposal Solution: Ensure proposal is in correct state (In Review, Submitted) and review requirements are met
Ended: Call managing organization
Customer organization ↵
Cost and usage policies
Waldur allows to set different cost and usage policies on organization, project and offering level. For example, this means that organization owners and service providers can enable different actions, when cost or usage exceedes predefines level.
Cost policies for organizations
Staff role can define cost policies for organizations. To add a new policy, open Administrations menu from the left and then Organizations -> Cost policies from the top. This view provides an overview about already defined policies. To create a new one, select "Add" from the right.

From the popup, select organization, then set estimated cost limit and finally choose the action (what happens, when the limit is reached).

Cost policies for projects
Organization owners can set different cost policies for projects under particular organization. To add a new policy, open Organizations menu from the left and then Accounting -> Cost policies from the top. This view provides an overview about already defined policies. To create a new one, select "Add" from the right.

From the popup, select project, then set estimated cost limit and finally choose the action (what happens, when the limit is reached).

Cost policies for offerings
Offering managers can set cost policies for specific organization groups. This allows to trigger some actions, when cost is reached. To add new policy, offering manager should open offering management page (Organization from the left menu, then Service provider -> Marketplace -> Offering) and then Policy -> Cost policy from the top. This view provides an overview about already defined policies. To create a new one, select "Add" from the right.

From the popup, set estimated cost limit, choose the action what happens after cost is reached (block creation of new resources or notifying the organization owners). Then, it is needed to select period (is this policy per month, quarter, annual or total) and finally select organization group for which this policy applies to.

Usage policies for offerings
Offering manager can set different usage policies for specific organization groups. This allows to trigger some actions, when usage of defined resource component is reached. To add new policy, offering manager should open offering management page (Organization from the left menu, then Service provider -> Marketplace -> Offering) and then Policy -> Usage policy from the top. This view provides an overview about already defined policies. To create a new one, select "Add" from the right.

From the popup, select accounting component and set limit for that. Several compoments can be defined in one policy. Then, it is needed to select period (is this policy per month, quarter, annual or total) and finally select organization group for which this policy applies to.

Credit management for organization owners
Credit management establishes credit limits for organizations that can be used for purchasing eligible services. The credit can optional be sub-allocated to projects and used in cost policies.
If credits are assigned to organizations by staff users (please see Credit management for staff), organization owners can distribute allocated credits to projects. Projects can use credits for specific resources, overused resources are invoiced according to the pricing plan. Organization owners can use credit management together with the cost and usage policies to handle overconsumption.
To see current credit management policies, open the organization dashboard and then Accounting -> Credit management from the top menu.
To create a new one, click "Add" on the right. A popup opens with configuration fields:
- Project - select the project, which can use the credits.
- Allocate credit - set the maximum amount of credits.
- Use organization credit after exceeding allocated amount - Enable, if project can use organization credits after running out of project credits. If disabled, resource usage will be invoiced according to the pricing plan.
- If all set, click "Create".
Organization membership management
Organization team contains users with different roles.
Please see this page for User Rights based on Roles in the Organization.
Adding organization members
- Open your organization in Waldur.
- Select "Team" from the menu and click on "Invitations".
-
By clicking "Add" open "Invite by email" window.
-
Insert user's email and set the role for the new user and continue.
-
Fill in your custom message on the right side of the window and send the invitation.
- User now will get invitation email with the acceptance link.
Project management
Project creation is allowed for organization owners in their organizations and staff users.
Note
User must have an account in Waldur instance to create projects.
- Select your home organization.
- Under the Project tab, click on Add.
-
Fill the necessary fields (fields marked with * are mandatory) and click Create.
- Project name - The original title of the project.
- Project description - A brief description about the project.
- OECD FoS code - OECD science field code (more info)
- Start date - once reached, marks the date when prepared user invitations are sent out and triggers the processing of previously made resource orders.
- End date – once reached, triggers the creation of termination orders for the existing resources. If the resources have already been terminated by this time, the project will be removed. The date is inclusive.
-
If you need to edit project details later, open your project and select the Edit tab.
Note
- If a resource has a termination date that comes after the project's end date, the project's end date will automatically become that resource's termination date.
- If a resource has a termination date that comes before the project's end date, we'll use the resource's original termination date.
- Important: Setting any end date (either the project's or a resource's) only creates a termination request. The resource remains active in the project until the termination process is fully completed.
Project membership management
Project team contains users with different roles.
Please see this page for User Rights based on Roles in the Project.
Adding project members
New user already has account in current Waldur instance
- Open your project in Waldur.
- Select "Team" from top menu and click on "Users".
-
By clicking "Add member" open "Add project member" window.
-
Select correct user, set the role and expiration date if necessary.
-
Finally, click on "Add".
- User now will get invitation email with the acceptance link.
New user don't have a account in current Waldur instance
- Open project in Waldur.
- Select "Team" from top menu and click on "Invitations".
- By clicking "Invite user" open "Invite by email" window.
- Insert user's email and set the role for the new user and continue.
- Fill in your custom message on the right side of the window and send the invitation.
- User now will get invitation email with the acceptance link.
Resource management
VPC management
Info
There are several Virtual Private Cloud providers available on the ´Marketplace´. You need to provision at least one VPC package from a suitable provider in order to be able to create virtual machines.
- Virtual Private Cloud (VPC) resource package can be added by clicking to ´Marketplace´ and selecting ´Private Clouds´ from the menu to go to the list of VPC.
- Currently, there are three VPC component names listed: ´Cores´, ´Ram´, and ´Storage´. For configuration of a VPC resource please fill in a suitable quantity for each component and click on the ´Add to cart´ button. Here by changing the quantities of components, you can see Prices accordingly per day, per 30 days, per 365 days, and finally the total price of the VPC.
- It is mandatory to input ´Tenant name´ to order a VPC.
- We also strongly suggest filling the ´Tenant description´ field.
- Finally click on Add to cart and Request on the next page.
Request approval
a) If your role in the Project is ´Project Manager´ or ´System Administrator´, please ask your Organization Owner to approve the order.
b) If your role is ´Organization Owner´ you are able to complete the purchase to final approval (click the ´Purchase´ button). Hereafter the system will need a couple of minutes to execute the order. Once the system changes the state to ´Done´, your VPC is ready to use.
Info
Provisioned VPC resource package will be automatically enabled for the project as a VM provider. For other projects it can be enabled by the organization owner under Provider management within organization workspace.
VM management
Info
Projects need to have at least one VPC resource package enabled before any virtual machines can be created. You can follow this guide to add a new VPC.
- VMs can be added by clicking to ’Marketplace’ and selecting ’Virtual machines’ from the menu to go to the list of Virtual Machines.
- Ordering a ’Virtual Machine’ requires a VM name and selection of a VM image.
- Please select the ’Image’ for a VM and click on the ’Select’ button, returning to the form.
- Selecting the initial VM resource profile, the flavor, by clicking on the ’Flavor: Show choices’ selector is mandatory.
- The flavor will set the initial resource profile for a VM - how much RAM, vCPU cores, and storage it will have.
Warning
VM images contain their minimum requirements information, and non-matching VM flavors are disabled automatically.
- Selecting VM flavor will also update ’System volume size’ with the option to override it manually (to a higher custom value). The size of ’Data Volume’ can be customized and incremented in 1 GB steps. ’System volume’ must be at least 10 GB, whereas ’System volume’ and ’Data volume’ must be equal to or less than VPC’s total Storage.
- By default, provisioned virtual machines expect users to log in using SSH keys. The initial SSH key for login should be selected by clicking on the ’SSH public key: Show choices’ selector.
Warning
There has to be at least one SSH public key added to the user profile for it to appear in the SSH key selector list.
Info
In order to log in to your newly created VM over SSH, you need to use a username depending on your choice of VM Image type and your SSH-RSA key-pair. By default password authentication is disabled.
- Default usernames for login are as follows:
- CentOS images: CentOS
- Ubuntu images: Ubuntu
- Debian images: Debian
- FreeBSD images: FreeBSD
- By default, no incoming connections will be allowed for a VM. Predefined Security Groups (firewall rules) must be linked to a VM in order to open up access (like ssh, HTTP, etc.). By clicking the ’Details’ button, you can see the details about the available ’Security Groups’. ’Security Groups’ can be added while ordering the VM or afterward by editing.
Info
VM create form will automatically include a ’default’ security group that enables egress (outgoing) traffic for a VM and which is required in order to reply to any of the incoming packets.
- VM needs to be connected to at least one of the VPC (internal) networks and an external network via floating IP - if external/public access to VM is required.
Info
Floating IP is technically realized as 1:1 NAT between VM internal IP and public network IP.
- We strongly suggest also adding ’VM description’. In order to provision the VM, please click on the “Add to cart” button.
Info
On the right pane, there will be a ’Checkout summary’ with the purchase overview and indicative VM cost (as part of the VPC package cost).
- VM should reach into “Active” status when successfully provisioned. The “Access” field will show the IP address to access VM over SSH (Linux) or over RDP (Windows).
Info
VM access over SSH or RDP should be permitted by ’Security Groups’ linked to VM.
HPC resource management
- HPC resources can be added by clicking to ´Marketplace´.
- Select organization and project (if not filled in yet) from the upper right corner.
- selecting ´HPC´ category or some other option which represent HPC resources.
- Select desired resource and click 'Deploy'.
- Fill in request form fields and click 'Create' on the right.
Resource components update
If it turns out that initial limits for the resource are too low or higher than expected, then it is possible to change the limits after the resource creation. This can be done by opening the resource management section. Again, like in the resource creation phase, same approval flow applies.
Usage reports
Usage of a resources
To see overall usage information of resources, please select "Reporting" from the left-side menu and then "Usage reports" on the top menu.
It is possible to filter te results by organization, project, offering and export results.
To view the usage information within a project:
Private clouds
To view the usage information within a project:
-
Open your project in Waldur.
-
Select the private cloud resource that usage report you would like to see.
-
Now private cloud resource dashboard provides the overview of limits and used quotas.

HPC
-
Open your project in Waldur.
-
Select the allocation (resource) that usage report you would like to see.
-
On this window, Select "Usage" to see the usage of a resource. Use tabs "CPU Allocation", "GPU Allocation", and "Storage Allocation" to see the details.

-
By default, the view shows last 6 months information. To see the usage from the creation of a resource, please use period selector on the right side.

-
Instead of graph view, it is possible to switch to table view as well. To do that, please use switching button on the right next to the period selector.

-
It is possible to download the graph views as PNG images. To do that, please use the arrow icon on the right side of the graph.

To check the current resource allocation limit:
Ended: Customer organization
End users ↵
Interface Introduction
Basics
Dashboard
- It is the first page you see (by default) after logging in to Waldur, which provides you with the initial necessary information of your profile, the Organizations and the Projects.
Organization / Project selection
- You can see the information about the organization only If you are at the organization level. It means if you are only at the project level, you can not go to the organization level.
Sidebar menu
- This is your main working tool in Waldur. Here you can manage your organizations, projects and resources. The next chapter of this guide will provide the details for each menu item.
Workspace menu (changes depending on sidebar menu)
- Each page in Waldur has a navigation bar at the top of the screen. It enables a quick access to organization/project info and management.
Workspace
- Shows organization, project or user dashboards related to the selection.
User related actions
- Contains all necessary action fields a user might need.
Issues
- Displays the list of user related issues. Here by Creating request you can request support.
Favorite Pages
- The opportunity to gather the most visited pages to make them easily reachable.
Pending confirmations
- Contains the list of requests related to user, resources or project management.
User Profile
- The main links related to the user actions like User Dashboard, Affiliations, Credentials, Notifications, Language and Color mode of the interface.
Get help
- By clicking Support you can find User Documentation, or reach us by using support email address and also create support request by going to "Issues" window.
Ended: End users
Service provider organization ↵
Accounting
Accounting of Service providers
Service provider revenue
If the organization is service provider, then it is possible to check the amount of revenue of a running month. To do that, open the organization dashboard, choose "Service provider" view and then dashboard opens. There you will see the total amount of estimated revenue and also 11 previous months.
By clicking on "Active clients" on the left, it's possible to see more detailed information about clients and amounts.

Invoices
Waldur provides a convenient way to see the invoices issued to the organization. Open the organization dashboard and select “Accounting” from the top menu and then “Invoices”. Now you’re able to see all invoices issued to the organization.

Invoices’ information can be downloaded in different formats as well.

Estimated cost
Estimated cost of a running month can be seen from the same view as invoices. By default, it shows top 4 projects with the highest cost. By clicking “Details”, you are able to see all projects with estimated costs.

Offerings
To create a new Offering in the Marketplace, you need to:
- Assure that categories are configured in the Marketplace.
- Create at least one service provider.
- Create and activate a public offering.
Waldur supports a number of different types of service providers when creating a shared offering. A common way of creating an offering is through a HomePort.
OpenStack offering creation
-
Select organization, which will provide the offering.
-
Go to Provider dashboard, click Marketplace -> Offerings from the top menu and then Add from the left.

-
A popup opens, fill in the name for the offering, category (e.g. Private clouds) and type (OpenStack tenant) and click Create.

-
An offering configuration page opens with an option to edit different attributes.
-
For the OpenStack integration, select Integration -> Credentials from the top menu. Fill in requested parameters.
- API URL - OpenStack deployment keystone URL
- Domain name - OpenStack domain name
- Username - Tenant user username
- Password - Tenant user password
- Tenant name - OpenStack tenant name
- External network ID - OpenStack extnet UUID
-
If everything is filled in, click on Synchronize in the top left corner. After few seconds, the State field will show OK if the integration is completed between Waldur and OpenStack.
-
To adjust the accounting, select Accounting from the top menu and then Plans -> Edit prices. Default accounting components are already defined.
-
If everything is completed and ready, click on Activate in the upper right corner to publish the offering.
SLURM offering creation
-
Select organization, which will provide the offering.
-
Go to Provider dashboard and click on Marketplace -> Offerings from the top menu and then click Add from the right.

-
A popup opens, fill in the name for the offering, category and type.

-
An offering configuration page opens with an option to edit different attributes.

-
Under Endpoints section, you can add access endpoints for the offering, for example, management consoles, SSH login nodes or similar.

This configuration will display then to resource of the offering a menu for easier navigation to the corresponding services. For SSH protocol this would trigger opening of an SSH client if configured for the browser. Out of the box works on OS X and Linux, requires configuration of the default application on Windows.

-
To add accounting components, select "Accounting components" from the top menu and then "Add component" from the right side. Accounting component is a measurable unit of a resource. For example, it can be CPU hours, GPU hours, storage hours, RAM etc.

-
A popup opens with possibility to configure fields and select the accounting type (whether the component is billed by the usage, max limit or it has a fixed price).
- Usage-based - billing is applied according to the actual usage of the resource during the billing period defined in the accounting plan after the submission of a usage report;
- Limit-based - billing is applied according to the requested/updated limits of a resource, actual usage can be below the limits and it is not the basis of the billing;
- Fixed price - billing is applied according to the exact values defined by the service provider in the accounting plan, limits and usage are not the basis for the accounting;
- One-time - billing is applied once on resource activation;
- One-time on plan switch - billing is applied once on resource activation and everytime a plan has changed, using pricing of a new plan.
-
To configure accounting frequency and prices, select "Accounting plans" from the top menu and then "Add plan" from the right. Select a name for the plan and accounting frequency.

-
To define prices for the components, select "Actions" and then "Edit prices". Set new price and save. If there is a need to provide higher priority access to resources with different prices, then it is advised to create another offering for this kind of cases.

-
If all set, click "Activate" on the top-right side to make it visible to everybody.

Tip
For more advanced cases of management of offerings, take a look at how a SLURM offering can be managed using Ansible module.
Offering management
It is possible to temporarily unpublish the offering. For example, if the service is down for a longer maintenance. To do that, open the offering edit page and click on Pause from the right.
If the offering is not needed anymore, then it is possible to archive it by selecting Archive from the offering edit page.
Configuring Getting Started Templates
When setting up an offering, you can configure a "Getting Started" guide that will be shown to users after they provision a resource. This guide supports dynamic variables that are automatically replaced with actual resource values.
Available Template Variables
{resource_name}- The name of the resource{resource_username}- The username associated with the resource{backend_id}- The backend identifier (e.g., SLURM account name){backend_metadata_key}- Any metadata fields from the backend (e.g.,{backend_metadata_state}){options_key}- Any custom options set for the resource (e.g.,{options_custom_field})
Example Template
For SLURM allocations, you might want to create a comprehensive guide like this:
1 2 3 4 5 6 7 8 9 10 11 | |
To configure this template:
- Go to your offering's page
- Select "Edit" from the top menu
- Scroll down and find the "Getting started instructions" and click the "Edit" button
- Enter your desired template information using the variables above
- Save the changes
The template will be rendered with retreived values when users access their resources.
Service offering configuration guide
Overview
This guide provides a structured approach for integrators to define an Offering. Offerings represent services, resources, or products made available through the platform.
General information
The General Information section defines the core attributes of an offering, including its identity, accessibility, and governance policies.
Required fields
- Name – The title of the offering, displayed across the platform
- Description – A concise summary outlining the offering's purpose
- Full description – A detailed explanation, including technical aspects and potential use cases
- Terms of service – Any contractual obligations or usage restrictions
- Privacy policy link – URL linking to the privacy policy
- Terms of service link – URL linking to the terms of service
- Access URL – The main entry point for users to access the offering
- Slug – A unique identifier used in URLs (readonly)
- Location – The geographical or virtual location of the offering
- Access policies – Defines access control rules and user eligibility
- Logo – A graphical representation of the offering
- Getting started instructions – Guidelines on how users can begin using the offering
Public information
The Public Information section ensures visibility and accessibility for end users. It includes Endpoints, Categories, and Images.
Endpoints
Endpoints provide connectivity to the offering's services. Each endpoint requires:
- Name – A human-readable identifier for the endpoint
- URL – The direct link to access the service
Images
Images provide visual representation and marketing appeal. Each image requires:
- Name – A descriptive title
- Description – A brief explanation of the image content
- Attached image file – The image file itself
Service provider registration
In Waldur, only organizations registered as service providers can create offerings and provide the service to users.
To register organization as service provider:
-
Open organization dashboard, click on "Edit" and select "Service provider" from the top menu.

-
Add service provider organization description. This description is visible in the Waldur marketplace under service provider list and under provider details.

-
Make sure that service provider organization category group is also set.
Ended: Service provider organization
Staff users ↵
Announcements
The Waldur User Interface provides an easy way to inform users about important updates and changes through announcements.
Currently, there are three types of announcements:
- Information – Provides general updates, new features, or helpful tips.
- Warning – Alerts users about potential issues or changes that may affect their experience.
- Danger – Signals critical issues, errors, or risks that require immediate action.
Announcement management
- Navigate to Administration → Settings → Announcements.
Adding an announcement
- Select Add from the announcement management page.
- Choose the type of announcement, as well as the start and end times.
- Enter the message for the users.
- Click Create.
Editing an announcement
If you need to edit existing announcement, then:
- Navigate to announcement management page.
- Find the announcement you would like to change.
- Under the Actions column on the left side of the announcement, click the Edit button (visible by clicking on the three dots).
Once an announcement is active, it will be displayed to users on every page, just below the Search box.
Branding configuration
The portal allows you to customize its appearance to match your organization's brand identity. This guide will help you configure the branding settings.
Accessing Branding Settings
- Navigate to the Administration section in the left-side menu
- Click on Settings
- Select the Branding tab
Available Customization Options
Branding
- Site Name: Sets the name of the organization.
- Page title: It is used as page title.
- Site description: Description of the Waldur deployment.
In the same page you will find more sections to customise
- Marketplace branding
- Notifications
- Links
- Theme
- Images
Note
All changes in branding settings will be applied system-wide. Please preview changes before saving to ensure they meet your organization's visual guidelines.
Broadcast
The broadcast functionality allows you to send messages to specific groups of users within Waldur. You can target messages to the following:
- Offering users
- Organization members
- All users connected to your Waldur deployment
Management of broadcast messages
To manage broadcast messages, follow these steps:
- Select Support from the left-side menu.
- Click Broadcast in the top menu.
The Broadcast Management page shows both sent messages and drafts. From here, you can view message history and create new broadcasts.
Broadcast templates
You can create broadcast message templates, which is useful for sending certain types of messages frequently (e.g., maintenance announcements).
To create a new template:
- Navigate to Support → Broadcast templates.
- Click Add.
A popup will appear with the following fields:
- Name: Name of the template
- Subject: Subject line for the broadcast message
- Message: Content of the message
Creating new broadcast message
To create a new broadcast message:
- Navigate to Support → Broadcast.
- Click Add.
A popup will appear with the following fields:
- Template: Select a predefined template (optional)
- Subject: Subject line for the broadcast message
- Message: Content of the message
- Send at: Schedule a send time for the message, or leave blank to send immediately
You can then either save the message as a draft for later editing or save it as a template for future use.
If everything looks good and you would like to send it out, click Select recipients.
Selecting Recipients
In this step, you can define the target users for the broadcast message:
- Specific offering(s) users
- Specific organization(s) members
- All users connected to your Waldur deployment
Once you're ready, click Send broadcast.
Catalogue mode
This guide explains how to enable and use the Catalogue mode in Waldur. This feature changes the marketplace to a catalog-only view, where services are displayed as a list of offerings but cannot be ordered directly through the platform.
Enabling Catalogue mode
Step 1: Access Administration settings
Navigate to the Administration section in Waldur.
Step 2: Configure features
- Select Settings from the menu
- Locate the Features selection
- Find the "Marketplace offerings and resources" section
- Look for "Allow marketplace to function as a catalogue only"
- Toggle the switch to enable the feature
Understanding Catalogue mode
When enabled, Catalogue mode introduces the following changes:
Key features
- Display-Only Functionality: The marketplace transforms into a directory-style listing of services
- No Direct Ordering: Offerings cannot be ordered directly through the portal
- Service Showcase: Organizations can present their services and offerings in a "yellow pages" format
Use cases
- Organizations wanting to showcase their services without enabling direct ordering
- Creating a comprehensive service directory
- Establishing a reference point for available offerings across different organizations
What changes?
- Order buttons are removed from offering details
- Focus shifts to informational display of services
- Maintains full visibility of offering details and specifications
- Preserves organization and category browsing capabilities
Note
The Catalogue mode can be disabled at any time by following the same steps and toggling the feature off.
Changing user passwords
This guide explains how administrators can change user passwords in Waldur.
Important note
⚠️ This guide only applies to local Waldur accounts:
- For users authenticated via LDAP: Manage passwords in your LDAP directory
- For users authenticated via OIDC: Manage passwords in your OpenID provider
- For users authenticated via SAML: Manage passwords in your SAML identity provider
Prerequisites
- Staff account access
Steps to change user password
- Access the admin panel
- Navigate to
<your-waldur-instance>/admin/ -
Log in with your staff account credentials
-
Locate user settings
- Go to "Users" section
-
Select "Users" from the list
-
Find specific user
- Use the search function to find the user
-
Click on the username to access their details
-
Change password
- Locate the password field
- Enter and confirm the new password
- Save changes
Important notes
⚠️ Security warnings:
- Only use this feature when absolutely necessary
- Ensure password changes comply with your organization's security policies
- Notify users when their passwords have been changed
- Document password changes according to your security protocols
Credit management configuration for staff
Credit management establishes credit limits for organizations that can be used for purchasing eligible services. The credit can optional be sub-allocated to projects and used in cost policies.
Users with staff role can allocate credit points to organizations. This can be done by selecting Administration from the left side menu and then Organizations -> Credit management from the top menu.
This page provides an overview of already assigned credit policies. To create a new one, click on "Add" from the right. A popup opens with different configuration fields.
- Select an organization to which you would like to assign credits.
- Select an offering for which credits can be used.
- Set the credit value. This is the total value that the organization will be able to spent.
-
Minimal consumption logic defines, how minimal monthly consumption is calculated:
- Fixed means that it is possible to define minimal monthly value and overall credit will be reduced by the monthly value, even if the usage has been less than minimal consumption.
- Linear means that by setting the end date, the total value of the credit will be divided evenly across the period until the end date and the overall value will be reduced monthly by the calculated value even if the consumption is less than the calculated value.
-
If all set, click "Create".
Impersonation functionality
Waldur provides Impersonation functionality to allow the support team to debug and resolve user-related issues more efficiently. This feature enables support users to view the user interface (UI) as though they were the user they are impersonating.
Prerequisites
- The impersonator must have a staff role in the Waldur deployment.
- The user being impersonated must have an active session (users cannot be logged out).
Process guide
- Log in to the Waldur deployment using a staff account.
-
Navigate to the Administration menu, then go to Accounts → Users from the top menu.
-
Locate the user you wish to impersonate and select Impersonate from the Actions options.
Logging
All actions performed on behalf of a user are logged with additional context in the audit logs, including the impersonator's UUID, full name, and username. This is primarily for security purposes.
Organization management
Overview
In Waldur, an organization represents a configurable grouping unit that can be adapted to various contexts such as research groups, institutions, departments, or working groups. Each organization has an designated owner who manages the organization's projects, users, and associated resources.
Create a new organization
Note
Organization creation is only allowed for users in Staff role!
- Login to Waldur and select "Organizations" from the left-side menu and then select "Add" from the right.
-
Fill the form and click "Create organization":
- Name - Name of the organization
- Contact email - email of the person, who is responsible for the organization
-
Organization edit page opens, where it is possible to add additional information, like policies, contact information. It is beneficial to assign a predefined category group (like private company, university, government, individial person etc) to organization.
Note
After the creation of the organization by the staff user, organization owners can manage organization details. To do this, navigate to the organization dashboard and select Edit.
Organization configuration
The organization edit interface consists of six main tabs, each containing specific configuration options:
Basic details
- Name - Full organization name
- Abbreviation - Short form of organization name
- Address - Physical location
- Postal code - Postal/ZIP code
- Country - Country of registration
- Organization groups - Associated group categories
- Location - Geographic location
Identifiers
- UUID - System-generated unique identifier (non-editable)
- Slug - URL-friendly identifier (non-editable)
- Registration code - Official registration number
- Agreement number - Contract reference number
- Sponsor number - Sponsorship identifier
Contact information
- Email - Primary contact email
- Phone number - Contact telephone
- Contact details - Additional contact information
- Homepage - Organization's website
Access control
To configure network access restrictions add access subnets by specifying:
- CIDR - Network address range
- Description - Purpose or identifier for the subnet
Billing
Contains billing-related configurations:
- Billing details
- Tax information
Call manager
You can enable Call manager by enabling the radio button:
- Enable call manager
Service provider
You can register organization as a service provider by pressing the button:
- Register as service provider
Remove
Provides organization removal functionality:
- Click "Remove organization" button to delete the organization
Note
Organization removal should be handled with caution as it may affect associated projects and users. Ensure all necessary data is backed up before proceeding with organization removal.
Multiple projects removal via admin panel
An admin can remove projects with all related resources with the following sequence of actions:
- Go to admin panel (e.g.
http://localhost:8080/admin/) - Open list of projects:
Structure tab->Projects - Filter the projects by organization field (optional)
- Select projects for removal
- Set action field to
Delete projects with all resources
Remote sync of offerings
Remote sync functionality allows you to import offering information from another Waldur instance and periodically update it.
Prerequisites
- The remote Waldur instance must have at least one organization with at least one offering.
- An integration user must be created under the organization in the remote Waldur instance. Its token is needed in the creation step.
- Category mapping analysis must be completed. This involves mapping the remote offering categories to the local ones.
Remote offering sync management
To manage existing offering syncs, follow this process:
- Log in to the local Waldur instance, open the Administration menu, and select Marketplace -> Remote Offering Sync from the top menu.
-
The Remote Offering Sync Management page opens.
-
From this page, you can create a new sync, edit an existing one, or delete a sync.
- Enable/Disable: Temporarily enable or disable the sync for a particular remote instance.
- Synchronize: Perform a one-time manual sync.
- Show Results of Last Run: View what was imported during the last sync.
- Edit: Modify the configuration of a particular sync.
- Delete: Remove a remote instance sync.
Creating new remote offering sync
- Go to the Remote Offering Sync Management page and click Add.
- A popup will open with the necessary fields to be filled in.
-
Fill in the required fields:
- Remote API URL: The API URL of the remote Waldur instance. This is typically the User Interface URL with /api at the end.
- Authentication token: The integration user’s authentication token from the remote Waldur instance.
- Remote organization: Select the remote organization that will request orders in remote Waldur, and whose visibility scope determines which offerings are imported from remote Waldur.
- Local service provider: Select the local service provider organization under which the imported offerings will be published.
- Category mapping rules: Map the remote offering categories to the local ones.
- Enable synchronization: Enable the sync now, or leave it disabled and enable it later.
- Click Create.
-
If remote sync is enable, then local Waldur periodically (once per day) pulls inormation about offerings from the remote instance.
Reporting
HomePort reports
Waldur HomePort includes a number of built-in reports based on the user activity. Reports can be accessed by staff and support users from the "Reporting" sidebar menu.
Grafana and Prometheus Metrics
Waldur supports exporters to Prometheus of different statistical metrics that can be used for building business dashboards, for example, in Grafana.
Check out details about the setup of the exporter.
Custom reports
It is possible to implement custom metric collection and report generation using Waldur SDK. Several examples are provided in the section for integrators.
Team management for staff
Adding organization members
New user already has account in current Waldur instance
User role management
Overview
Staff users can manage user roles through the platform's role management interface. This includes configuring existing roles, creating new ones, and adjusting role permissions to ensure appropriate access levels across different organizational contexts.
Accessing role management
- Navigate to Administration in the main menu
- Select Settings
- Click on User roles
Managing existing roles
Viewing roles
The roles interface displays all existing roles with their associated types and descriptions.
Role actions
For each role, administrators can:
-
Edit role
- Modify role name
- Change role type
- Adjust permissions
-
Edit description
- Update role description
- Add clarifying information
-
Disable role
- Temporarily deactivate role
- Prevent new assignments
Creating new roles
- Click Add new role
- Complete the required fields:
- Name - Descriptive title for the role
- Type - Select role context
- Permissions - Configure permissions
Available role types
- Organization
- Project
- Offering
- Call
- Proposal
- Service provider organization
- Call managing organization
Permission configuration
Permissions in Waldur are extensively categorized to provide granular access control across different functional areas. Each permission category contains multiple specific actions that can be enabled or disabled.
Offering permissions
- Controls the complete lifecycle of offerings
- Includes creation, modification, and deletion capabilities
- Manages offering components like endpoints, screenshots, and plans
- Controls offering states (pause/unpause/archive)
- Manages offering-specific user groups and campaigns
- Configures offering attributes, location, and description
Order permissions
- Manages the order workflow process
- Controls order visibility and listing
- Handles order approval processes (both public and private)
- Manages order cancellation and rejection
- Controls order destruction capabilities
Provider actions
- Manages service provider operations
- Controls resource management and reporting
- Handles API and robot account management
- Provides access to service provider statistics and revenue
- Manages provider-customer relationships
- Controls backend integration settings
Customer actions for resources
- Controls resource visibility and management
- Handles resource lifecycle operations
- Manages booking requests and plan switching
- Controls resource limitations and options
- Manages importable resources
Team member permissions
- Controls invitation management
- Manages permission assignments across projects, customers, and offerings
- Handles creation, updating, and deletion of various permission types
- Controls access level modifications
Project permissions
- Manages project lifecycle
- Controls project creation and modification
- Handles project listing and deletion
- Sets project-level access controls
Call management
- Controls call and round management
- Handles proposal workflows
- Manages permission assignments for calls
- Controls proposal approval processes
- Manages round closures
Service desk ↵
Service desk configuration
Waldur offers a convenient way to integrate with popular service desk solutions like Atlassian, Zammad, and Smax. With this integration, you can manage service desk tickets directly within Waldur.
To set up the configuration, navigate to the Service Desk configuration page by going to Administration -> Service Desk.
- Waldur support enabled - Toggle Yes if you want to use support plugin.
- Waldur support active backend type - Select the active configuration.
- Waldur support display request type - Toggle to show the request type.
Atlassian configuration
To configure Atlassian for Waldur, open the Service Desk configuration page and select Configure from the Atlassian box.
A popup will appear. Fill in the required fields and click Update.
- Atlassian API server URL – The base URL for connecting to the Atlassian API.
- Username for access user – The username of the account used for API authentication.
- Password for access user – The password for the access user (if required).
- Email for access user – The email address associated with the access user.
- Token for access user – An authentication token used instead of a password for secure access.
- Service desk ID or key – The identifier for the service desk in Jira Service Management.
- Issue type used for request-based item processing – Defines which issue type (e.g., "Service Request") is used for handling requests.
- Comma-separated list of file extensions not allowed for attachment – Specifies file types that cannot be uploaded.
- Atlassian issue types – Lists the types of issues available (e.g., Informational, Service Request, Change Request, Incident).
- Affected resource field name – The field name that captures the impacted resource.
- Template for issue description – A predefined format for issue descriptions.
- Template for issue summary – A predefined format for issue summaries.
- Impact field name – The field used to store impact-related information (e.g., "Impact").
- Organisation field name – Maps the field for the organization associated with the issue (e.g., "Reporter organization").
- Resolution SLA field name – Defines the field tracking SLA (Service Level Agreement) resolution time.
- Project field name – Stores the project identifier for an issue.
- Reporter field name – Identifies the original reporter of an issue (e.g., "Original Reporter").
- Caller field name – Refers to request participants (e.g., users involved in the request process).
- SLA field name – Specifies the field used for tracking SLA metrics (e.g., "Time to first response").
- Type of linked issue field name – Defines the field used to categorize linked issues (e.g., "Relates").
- Customer satisfaction field name – Captures customer satisfaction ratings (e.g., "Customer satisfaction").
- Request feedback field name – Stores feedback related to the request (e.g., "Request feedback").
- Template field name – Allows specifying a template for issue creation.
- Atlassian custom issue field mapping enabled – Allows enabling/disabling custom field mapping.
- Atlassian shared username – Enables a shared username across different configurations.
- Atlassian verify SSL – Controls whether SSL certificates should be verified for security.
- Atlassian use old API – Enables compatibility with older API versions.
- Atlassian use automatic request mapping – When enabled, this setting allows automatic mapping of incoming requests to the appropriate Atlassian issues or service desk requests.
- Atlassian map Waldur users to service desk agents – This suggests an integration between Waldur and Atlassian's service desk. Enabling this would map Waldur users to service desk agent roles.
- Atlassian pull priorities – If enabled, it allows the system to synchronize or pull priority levels from Atlassian issues to maintain consistent prioritization.
Zammad configuration
To configure Zammad for Waldur, open the Service Desk configuration page and select Configure from the Zammad box.
A popup will appear. Fill in the required fields and click Update.
- Zammad API server URL - Zammad instance API URL.
- Authorization token - Zammad instance API token.
- Zammad group - Zammad instance group under which the tickets are created.
- Zammad article type - Zammad instance article type. Usually "email".
- Zammad comment maker - Additional comment line in Zammad, if the ticket is created in Waldur.
- Comment prefix with user info - Additional comment line in Zammad with user name, who created the ticket.
- Zammad comment cooldown duration - Time (in seconds) to remove the comment until it is saved in the system.
Smax configuration
To configure Smax for Waldur, open the Service Desk configuration page and select Configure from the Smax box.
A popup will appear. Fill in the required fields and click Update.
- SMAX API server URL - Enter the URL of the SMAX API server to enable communication between Waldur and SMAX.
- User tenant ID - Provide the unique tenant ID associated with your SMAX user account.
- Authorization login - Enter the login credentials used to authenticate with the SMAX service.
- Authorization password - Enter the password associated with the authorization login.
- Organisation field name - Specify the field name that identifies the organization in SMAX.
- Project field name - Specify the field name used to identify the project in SMAX.
- Resource field name - Provide the field name used for identifying resources in SMAX.
- Requests offering code for all issues - Provide the offering code that corresponds to the issues in SMAX.
- Duration in seconds of delay between pull user attempts - Set the duration (in seconds) between attempts to pull user data from the backend.
- The maximum number of attempts to pull user from backend - Set the maximum number of attempts to pull user data from the backend before the process is stopped.
- Creation source name - Specify the source name used when creating tickets or records in SMAX.
- Smax verify ssl - Toggle this setting to enable or disable SSL verification when communicating with the SMAX server.
Service desk interactions
This guide will help you navigate and effectively use the support system to manage service requests, track tickets, and communicate with users.
Accessing the service desk support tickets
To view service desk support tickets:
- Select Support from the left-hand menu.
- Click Requests from the top menu.
A page will open displaying all created tickets. You can view:
- The status of each ticket.
- The user name and organization that created the ticket.
To open a specific ticket, click on its key-name. This will open a dedicated ticket page.
On this page, you can:
- Read the content of the ticket.
- Check attachments.
- Add comments/replies to communicate with users.


































































































































